home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-01-01 | 167.0 KB | 4,302 lines | [TEXT/ttxt] |
- 10000 ' $linesize: 132
- 10001 ' $title: 'CONFIG V2.10, Copyright 1983,84,85,86 by D. Thomas Mack'
- 10003 ' WARNING !!! DO NOT CHANGE, BYPASS OR REMOVE LINE 10000-10230
- 10010 ' CONFIG.BAS (RBBS-PC ver. CPC14.1D)
- 10030 ' by D.Thomas Mack
- 10040 ' The Second Ring
- 10050 ' 10210 Oxfordshire Road
- 10060 ' Great Falls, Virginia 22066
- 10070 '
- 10080 ' *******************************NOTICE***********************************
- 10090 ' * A limited license is granted to all users of this program and it's *
- 10100 ' * companion program, RBBS-PC (ver. CPC14.1), to make copies of this *
- 10110 ' * program and distribute the copies to other users, on the following *
- 10120 ' * conditions *
- 10130 ' * 1. The notices contained in lines 25 through 44 of the programs *
- 10140 ' * are not altered, bypassed, or removed. *
- 10150 ' * 2. The program is not to be disrtibuted to others in modified *
- 10160 ' * form (i.e. the line numbers must remain the same). *
- 10170 ' * 3. No fee is to be charged (or any other consideration received)*
- 10180 ' * for coping or distributing these programs without an express *
- 10190 ' * written agreement with D. Thomas Mack, The Second Ring, 10210*
- 10200 ' * Oxfordshire Road, Great falls, Virginia 22006 *
- 10210 ' * *
- 10220 ' * Copyright (c) 1983, 1984, 1985, 1986 Thomas Mack, The Second Ring *
- 10230 ' ************************************************************************
- 10240 DEFINT A-Z
- CLEAR
- DIM A$(10), _
- SYSOP.FUNCTION(7), _
- MAIN.FUNCTION(21), _
- FILES.FUNCTION(10), _
- UTILITY.FUNCTION(16), _
- HELP$(9), _
- DNLD$(99), _
- MENU$(6)
- '
- ' *****************************************************************************
- ' * DISPLAY THE CONFIG TITLE PAGE *
- ' *****************************************************************************
- '
- 10250 WIDTH 80
- CLS
- I! = FRE(C$)
- KEY OFF
- LOCATE ,,0
- 10260 PRINT TAB(60)"tm"
- PRINT TAB(16) STRING$(15,205)" U S E R W A R E "STRING$(15,205)
- 10270 PRINT
- PRINT TAB(17)"Capital PC User Group User-Supported Software"
- PRINT
- PRINT TAB(5) CHR$(214)STRING$(67,196)CHR$(183)
- 10280 FOR I = 1 TO 12
- READ A$
- PRINT TAB(5) CHR$(186);A$;SPACE$(67-LEN(A$));CHR$(186)
- NEXT
- 10290 PRINT TAB(5) CHR$(211)STRING$(67,196)CHR$(189)
- PRINT "Copyright (c)1983,1984,1985,1986 Tom Mack, 10210 Oxfordshire Rd, Great Falls, VA"
- 10300 DATA " If you are using RBBS-PC CPC14.1 and find it valuable, I
- 10310 DATA " suggest you consider a contribution to
- 10320 DATA "
- 10330 DATA " Capital PC Software Exchange
- 10340 DATA " Post Office Box 6128
- 10350 DATA " Silver Spring, Maryland 20906
- 10360 DATA ""
- 10370 DATA " You are free to copy and share RBBS-PC CPC14.1 with
- 10380 DATA " others on these three conditions:
- 10390 DATA " 1. This program is not distributed in modified form.
- 10400 DATA " 2. No fee or consideration is charged.
- 10410 DATA " 3. This notice is not bypassed or removed.
- '
- ' *****************************************************************************
- ' * DEFINE THE FUNCTIONS USED BY CONFIG *
- ' *****************************************************************************
- '
- 10420 DEF FNTI! = CSNG(FIX((VAL(MID$(TIME$,1,2))*60*60) _
- + (VAL(MID$(TIME$,4,2))*60) _
- + (VAL(MID$(TIME$,7,2))*1)))
- 10422 DEF FNHSH(X$) = ((ASC(X$)*100 _
- + ASC(MID$(X$,LEN(X$)/2,1))*10 _
- + ASC(RIGHT$(X$,1))) MOD MAX.USR.FILE.SIZE.FRM.DEF) + 1
- 10424 DEF FNHSH2(X$) = (ASC(MID$(X$,2,1))*10 + 7) MOD MAX.USR.FILE.SIZE.FRM.DEF
- 10430 CONFIG.FILENAME$ = "RBBS-PC.DEF"
- M$ = "Z"
- MAXD = 10
- 10440 FG = 7
- 10450 BG = 0
- 10460 BORDER = 0
- 10470 DELAY! = FNTI! + 5
- 10480 IF FNTI! < DELAY! THEN _
- LOCATE 22,15 : _
- GOTO 10480
- 10490 LOCATE 22,15
- PRINT SPC(64)
- LOCATE 22,15
- PRINT "Will you be running multiple copies of RBBS-PC (YES or NO)?";
- 10500 GOSUB 22380
- ON AB GOTO 10530,10510,10490,10490
- 10510 GOSUB 22480
- 10520 '
- '
- ' *****************************************************************************
- ' * CHECK TO SEE IF AN EXISTING "RBBS-PC.DEF" FILE EXISTS *
- ' *****************************************************************************
- '
- 10530 ON ERROR GOTO 60010
- DD$ = "C"
- GOSUB 10540
- MODEM.INIT.COMMAND$ = SG1$
- FILE$ = CONFIG.FILENAME$
- GOSUB 30000
- IF OKAY THEN _
- GOTO 10535
- 10531 GOSUB 31060
- PRINT CONFIG.FILENAME$ + " file not found. A new one will be created.";
- DELAY! = FNTI! + 5
- GOSUB 60440
- 10532 GOSUB 31060
- PRINT "Default drive on which RBBS is to reside (A-" + M$ + "): ";
- LINE INPUT;HJ$
- GOSUB 50654
- IF LEN(HJ$)<>1 OR HJ$<"A" OR HJ$>M$ THEN _
- GOTO 10532
- 10533 DD$ = HJ$
- GOSUB 10540
- GOTO 11870
- 10535 OPEN "I",#1,CONFIG.FILENAME$
- GOTO 11590
- '
- ' *****************************************************************************
- ' * INITALIZE ALL VARIABLES *
- ' *****************************************************************************
- '
- 10540 D$ = DD$ + ":"
- FALSE = 0
- IB = 0
- TRUE = NOT FALSE
- MAXIMUM.DISPLAYABLE.PAGES = 9
- MAXIUM.NUMBER.OF.NODES = 1
- NETWORK.TYPE$ = "IBM's DOS"
- RECYCLE.TO.DOS$ = "INTERNAL"
- MAX.USR.FILE.SIZE.FRM.DEF = 16
- MAIN.MESSAGE.FILE$ = D$ + "MESSAGES"
- MAIN.MESSAGE.BACKUP$ = D$ + "MESSAGES.BAK"
- CALLERS.FILE$ = D$ + "CALLERS"
- COMMENTS.FILE$ = D$ + "COMMENTS"
- MAIN.USER.FILE$ = D$ + "USERS"
- C$ = ""
- HELP.FILE.PREFIX$ = "HELP0"
- HELP$(1) = "HELP01"
- HELP$(2) = "HELP02"
- HELP$(3) = "HELP03"
- 10720 HELP$(4) = "HELP04"
- HELP$(5) = "HELP05"
- HELP$(6) = "HELP06"
- HELP$(7) = "HELP07"
- HELP$(8) = "HELP08"
- HELP$(9) = "HELP09"
- BULLETIN.MENU$ = "BULLET"
- BULLETIN.PREFIX$ = "BULLET"
- WELCOME.FILE$ = D$ + "WELCOME"
- NEWUSER.FILE$ = D$ + "NEWUSER"
- MENU$(1) = D$ + "MENU1"
- MENU$(2) = D$ + "MENU2"
- MENU$(3) = D$ + "MENU3"
- MENU$(4) = D$ + "MENU4"
- MENU$(5) = D$ + "MENU5"
- 10880 CONFERENCE.MENU$ = D$ + "CONFENCE"
- TRASHCAN.FILE$ = D$ + "TRASHCAN"
- CONFERENCE.VIEWER.SEC.LVL = 0
- WELCOME.INTERRUPTABLE = TRUE
- REMIND.FILE.TRANSFERS = FALSE
- REMIND.PROFILE = FALSE
- PAGE.LENGTH = 23
- MAX.MESSAGE.LINES = 19
- DOORS.AVAILABLE = FALSE
- DIRECTORY.EXTENTION$ = "DIR"
- TB$ = DD$
- DRIVE.FOR.BULLETINS$ = TB$
- DRIVE.FOR.HELP.FILES$ = TB$
- DOS.VERSION = 2
- SYSOP.FIRST.NAME$ = "TOM"
- SYSOP.LAST.NAME$ = "MACK"
- SYSOP.PASSWORD.1$ = "RBBS-PC"
- RBBS.NAME$ = "RBBS-PC"
- SYSOP.PASSWORD.2$ = "CPC12"
- EXPERT.USER = 0
- CONFIG.VERSION$ = "(Version 2.20)" ' CPC14-1D
- REQUIRED.RINGS = 1
- MINIMUM.LOGON.SECURITY = 0
- CONFERENCE.VIEWER.SEC.LVL = MINIMUM.LOGON.SECURITY
- DEFAULT.SECURITY.LEVEL = 5
- SYSOP.SECURITY.LEVEL = 10
- 11110 RECYCLE.TO.DOS = 0
- LOCAL.PASSWORD$ = SYSOP.PASSWORD.1$
- MAXIMUM.VIOLATIONS = 5
- SF = 10
- FOR I = 1 TO 7
- SYSOP.FUNCTION(I) = SF
- NEXT
- MM = 5
- FOR I = 1 TO 21
- MAIN.FUNCTION(I) = MM
- NEXT
- FC = 5
- FOR I = 1 TO 10
- FILES.FUNCTION(I) = FC
- NEXT
- UE = 5
- FOR I = 1 TO 16
- UTILITY.FUNCTION(I) = UE
- NEXT
- PASSWORD.FILE$ = TB$ + ":" + "PASSWRDS"
- MAXIMUM.PASSWORD.CHANGES = 3
- MINIMUM.SECURITY.FOR.TEMP.PASSWORD = 5
- OVERWRITE.SECURITY.LEVEL = SYSOP.SECURITY.LEVEL
- DOORS.TERMINAL.TYPE = 5
- DOWNLOAD.DRIVES$ = DD$ + DD$
- MO$ = DD$
- UPLOAD.DIRECTORY$ = "99"
- RBBS.BAT$ = D$ + "RBBS.BAT"
- SEC.LVL.EXEMPT.FRM.PURGING = SYSOP.SECURITY.LEVEL
- 11204 FILESEC.FILE$ = TB$ + ":" + "FILESEC"
- SYSOP.MENU.SECURITY.LEVEL = 10
- DOORS.SECURITY.LEVEL = 10
- NETWORK.TYPE = 0
- DEFAULT.MACHINE.TYPE$ = "IBMPC"
- WAIT.BEFORE.DISCONNECT = 180
- UPLOAD.TIME.FACTOR! = 0
- MODEM.INIT.BAUD$ = "300"
- MODEM.INIT.WAIT.TIME = 2 ' CPC14-1C
- MODEM.COMMAND.DELAY.TIME = 1 ' CPC14-1C
- TURBO.RBBS = TRUE ' CPC14-1C
- 11270 RCTTY.BAT$ = D$ + "RCTTY.BAT"
- OMIT.MAIN.DIRECTORY$ = "NO"
- OMIT.UPLOAD.DIRECTORY$ = "NO"
- PROMPT.BELL = 0
- PCJR = 0
- MINUTES.PER.SESSION! = 72
- MAX.ALLOWED.MSGS.FRM.DEF = 5
- ACT.MNTHS.B4.DELETING = 1
- START.OFFICE.HOURS = 800
- END.OFFICE.HOURS = 2200
- CODE.TYPE = FALSE
- BULLETINS.OPTIONAL = TRUE
- COM.PORT$ = "COM1"
- MESSAGE.REMINDER = TRUE
- REQUIRE.NON.ASCII = TRUE
- PAGING.PRINTER.SUPPORT$ = ". "
- LIMIT.DAILY.TIME = FALSE
- COMMANDS.BETWEEN.RINGS = FALSE
- MNP.SUPPORT = FALSE
- ACTIVE.BULLETINS = 6
- COMPUTER.TYPE = 0
- 11271 SYSOP.FUNCTION.KEY1$= " --- RBBS-PC'S Local Keyboard's Active Keys and Their Use --- "
- 11272 SYSOP.FUNCTION.KEY2$= "ESC- SYSOP sign-on locally to RBBS. END - Lock-out & logoff current user."
- 11273 SYSOP.FUNCTION.KEY3$= "F1 - End RBBS-PC and exit to DOS. PgUp- Display current user's information."
- 11274 SYSOP.FUNCTION.KEY4$= "F2 - Temporarily exit to DOS. PgDn- End display of user's information."
- 11275 SYSOP.FUNCTION.KEY5$= "F3 - Toggle Line Printer. "+CHR$(24)+" - Add 1 to a user's security"
- 11276 SYSOP.FUNCTION.KEY6$= "F4 - Toggle SYSOP Page Bell. "+CHR$(25)+" - Subtract 1 from user's security"
- 11277 SYSOP.FUNCTION.KEY7$= "F5 - Force on-line state."
- 11278 SYSOP.FUNCTION.KEY8$= "F6 - Toggle SYSOP available."
- 11279 SYSOP.FUNCTION.KEY9$= "F7 - SYSOP next on system."
- 11280 SYSOP.FUNCTION.KEY10$= "F8 - Grant temporary SYSOP privileges."
- 11281 SYSOP.FUNCTION.KEY11$= "F9 - Toggle SNOOP."
- 11282 SYSOP.FUNCTION.KEY12$= "F10- Force CHAT - ESC to end."
- SG1$="ATM0Q1S2=255S10=30E0S0=0 "
- 11551 DNLD.SUB = 0
- WILL.SUBDIRS.B.USED = FALSE
- UPLOAD.TO.SUBDIR = FALSE
- DOWNLOAD.TO.SUBDIR = FALSE
- RESTRICT.BAUD = FALSE
- USE.COLOR = FALSE
- DISKFULL.GO.OFFLINE = TRUE
- EXTENDED.LOGGING = FALSE
- DUMB.MODEM = FALSE
- COMMENTS.AS.MESSAGES = FALSE
- UPLOAD.SUBDIR$ = ""
- MODEM.RESET.COMMAND$ = "ATZ"
- MODEM.COUNT.RINGS.COMMAND$ = "ATS1?"
- MODEM.ANSWER.COMMAND$ = "ATQ0X1V1A"
- MODEM.GO.OFFHOOK.COMMAND$ = "ATQ1E1H1M0"
- DISK.FOR.DOS$ = DD$ + ":"
- RETURN
- 11580 ' RBBS-PC Configuration Program for Compilable RBBS-PC
- 11590 LOCATE 22,15
- PRINT SPC(64);
- '
- ' *****************************************************************************
- ' * READ IN THE PARAMETERS FROM AN EXISTING "RBBS-PC.DEF" FILE *
- ' *****************************************************************************
- '
- 11600 INPUT #1,DOWNLOAD.DRIVES$, _ ' FD$
- SYSOP.PASSWORD.1$, _ ' PA$
- SYSOP.PASSWORD.2$, _ ' PB$
- SYSOP.FIRST.NAME$, _ ' NB$
- SYSOP.LAST.NAME$, _ ' NC$
- REQUIRED.RINGS, _ ' CE
- START.OFFICE.HOURS, _ ' AC
- END.OFFICE.HOURS, _ ' AD
- MINUTES.PER.SESSION!, _ ' TC!
- MAX.ALLOWED.MSGS.FRM.DEF, _ ' MP (DF)
- ACT.MNTHS.B4.DELETING, _ ' LA (DF)
- UPLOAD.DIRECTORY$, _ ' UF$
- EXPERT.USER, _ ' XPR
- ACTIVE.BULLETINS, _ ' BG
- PROMPT.BELL, _ ' BE
- PCJR, _ ' PCJR (DF)
- CODE.TYPE, _ ' CL (DF)
- MENU$(1), _ ' MG$
- MENU$(2), _ ' MH$
- MENU$(3), _ ' MI$
- MENU$(4), _ ' MJ$
- MENU$(5), _ ' MK$
- CONFERENCE.MENU$, _ ' CD$
- CONFERENCE.VIEWER.SEC.LVL, _ ' VA (DF)
- WELCOME.INTERRUPTABLE, _ ' OA
- REMIND.FILE.TRANSFERS, _ ' UD
- PAGE.LENGTH, _ ' PL
- MAX.MESSAGE.LINES, _ ' LW
- DOORS.AVAILABLE, _ ' WB
- MO$ ' MO$ (DF)
- 11610 GOSUB 22340
- 11620 INPUT #1,MAIN.MESSAGE.FILE$, _ ' ME$
- MAIN.MESSAGE.BACKUP$, _ ' MF$
- CALLERS.FILE$, _ ' CB$
- COMMENTS.FILE$, _ ' CC$
- MAIN.USER.FILE$, _ ' UC$
- WELCOME.FILE$, _ ' WA$
- NEWUSER.FILE$, _ ' NA$
- DIRECTORY.EXTENTION$, _ ' DIR$
- COM.PORT$, _ ' M13$
- BULLETINS.OPTIONAL, _ ' OD
- MODEM.INIT.COMMAND$, _ ' SG$
- TB$, _ ' TB$ (DF)
- DOS.VERSION, _ ' DA
- FG, _ ' FGR
- BG, _ ' BGR
- BORDER, _ ' BDR
- RBBS.BAT$, _ ' RB$
- RCTTY.BAT$ ' CI$
- IF LEN(MODEM.INIT.COMMAND$) <> 28 THEN _
- MODEM.INIT.COMMAND$ = SG1$
- 11630 GOSUB 22340
- 11640 INPUT #1,OMIT.MAIN.DIRECTORY$, _ ' OB$
- OMIT.UPLOAD.DIRECTORY$, _ ' OC$
- HELP$(1), _ ' HA$(1)
- HELP$(2), _
- HELP$(3), _
- HELP$(4), _
- HELP$(5), _
- HELP$(6), _
- HELP$(7), _
- HELP$(8), _
- HELP$(9), _ ' HA$(9)
- BULLETIN.MENU$, _ ' BA$
- BULLETIN.PREFIX$, _ ' BB$
- DRIVE.FOR.BULLETINS$, _ ' BD$ (DF)
- MESSAGE.REMINDER, _ ' RC
- REQUIRE.NON.ASCII, _ ' BF
- DOORS.SECURITY.LEVEL, _ ' SD
- MAXIUM.NUMBER.OF.NODES, _ ' MC
- NETWORK.TYPE, _ ' SE
- RECYCLE.TO.DOS, _ ' CF
- MAX.USR.FILE.SIZE.FRM.DEF, _ ' UB (DF)
- MAX.MSG.FILE.SIZE.FRM.DEF!, _ ' MQ! (DF)
- TRASHCAN.FILE$ ' BC$
- GOSUB 21895
- 11650 GOSUB 22340
- 11660 INPUT #1,MINIMUM.LOGON.SECURITY, _ ' ML
- DEFAULT.SECURITY.LEVEL, _ ' DB
- SYSOP.SECURITY.LEVEL, _ ' SB
- FILESEC.FILE$, _ ' FB$
- SYSOP.MENU.SECURITY.LEVEL, _ ' SC
- LOCAL.PASSWORD$, _ ' KA$
- MAXIMUM.VIOLATIONS, _ ' ND
- SYSOP.FUNCTION(1), _ ' SA(1)
- SYSOP.FUNCTION(2), _
- SYSOP.FUNCTION(3), _
- SYSOP.FUNCTION(4), _
- SYSOP.FUNCTION(5), _
- SYSOP.FUNCTION(6), _
- SYSOP.FUNCTION(7), _ ' SA(7)
- PASSWORD.FILE$, _ ' PD$
- MAXIMUM.PASSWORD.CHANGES, _ ' CG
- MINIMUM.SECURITY.FOR.TEMP.PASSWORD, _ ' CH
- OVERWRITE.SECURITY.LEVEL, _ ' WC
- DOORS.TERMINAL.TYPE, _ ' MN
- LIMIT.DAILY.TIME ' M26
- 11670 GOSUB 22340
- 11680 INPUT #1,MAIN.FUNCTION(1), _ ' MD(1)
- MAIN.FUNCTION(2), _
- MAIN.FUNCTION(3), _
- MAIN.FUNCTION(4), _
- MAIN.FUNCTION(5), _
- MAIN.FUNCTION(6), _
- MAIN.FUNCTION(7), _
- MAIN.FUNCTION(8), _
- MAIN.FUNCTION(9), _
- MAIN.FUNCTION(10), _
- MAIN.FUNCTION(11), _
- MAIN.FUNCTION(12), _
- MAIN.FUNCTION(13), _
- MAIN.FUNCTION(14), _
- MAIN.FUNCTION(15), _
- MAIN.FUNCTION(16), _
- MAIN.FUNCTION(17), _
- MAIN.FUNCTION(18), _
- MAIN.FUNCTION(19), _
- MAIN.FUNCTION(20), _
- MAIN.FUNCTION(21), _ ' MD(21)
- DEFAULT.MACHINE.TYPE$, _ ' SY$
- WAIT.BEFORE.DISCONNECT ' TY
- 11690 GOSUB 22340
- 11700 INPUT #1,FILES.FUNCTION(1), _ ' FS(1)
- FILES.FUNCTION(2), _
- FILES.FUNCTION(3), _
- FILES.FUNCTION(4), _
- FILES.FUNCTION(5), _
- FILES.FUNCTION(6), _
- FILES.FUNCTION(7), _
- FILES.FUNCTION(8), _
- FILES.FUNCTION(9), _
- FILES.FUNCTION(10), _ ' FS(10)
- UTILITY.FUNCTION(1), _ ' UA(1)
- UTILITY.FUNCTION(2), _
- UTILITY.FUNCTION(3), _
- UTILITY.FUNCTION(4), _
- UTILITY.FUNCTION(5), _
- UTILITY.FUNCTION(6), _
- UTILITY.FUNCTION(7), _
- UTILITY.FUNCTION(8), _
- UTILITY.FUNCTION(9), _
- UTILITY.FUNCTION(10), _
- UTILITY.FUNCTION(11), _
- UTILITY.FUNCTION(12), _
- UTILITY.FUNCTION(13), _
- UTILITY.FUNCTION(14), _
- UTILITY.FUNCTION(15), _
- UTILITY.FUNCTION(16), _ ' UA(16)
- UPLOAD.TIME.FACTOR!, _ ' UPX!
- COMPUTER.TYPE, _ ' CM
- REMIND.PROFILE, _ ' CK
- RBBS.NAME$, _ ' FF$
- COMMANDS.BETWEEN.RINGS, _ ' M28
- MNP.SUPPORT, _ ' M29
- PAGING.PRINTER.SUPPORT$, _ ' MW$
- MODEM.INIT.BAUD$ ' B$
- 11705 INPUT #1,SYSOP.FUNCTION.KEY1$, _ ' SM1$
- SYSOP.FUNCTION.KEY2$, _
- SYSOP.FUNCTION.KEY3$, _
- SYSOP.FUNCTION.KEY4$, _
- SYSOP.FUNCTION.KEY5$, _
- SYSOP.FUNCTION.KEY6$, _
- SYSOP.FUNCTION.KEY7$, _
- SYSOP.FUNCTION.KEY8$, _
- SYSOP.FUNCTION.KEY9$, _
- SYSOP.FUNCTION.KEY10$, _ ' SM9$
- SYSOP.FUNCTION.KEY11$, _ ' SH$
- SYSOP.FUNCTION.KEY12$, _ ' SI$
- SEC.LVL.EXEMPT.FRM.PURGING, _ ' PC ' CPC14-1C
- MODEM.INIT.WAIT.TIME, _ ' CPC14-1C
- MODEM.COMMAND.DELAY.TIME, _ ' CPC14-1C
- TURBO.RBBS ' CPC14-1C
- 11706 INPUT #1,DNLD.SUB, _ ' DNLD.SUB
- WILL.SUBDIRS.B.USED, _ ' M30 (DF)
- UPLOAD.TO.SUBDIR, _ ' M31
- DOWNLOAD.TO.SUBDIR, _ ' M32 (DF)
- UPLOAD.SUBDIR$, _ ' M33$
- RESTRICT.BAUD, _ ' M34
- USE.COLOR, _ ' M35
- DISKFULL.GO.OFFLINE, _ ' M36
- EXTENDED.LOGGING, _ ' M37
- MODEM.RESET.COMMAND$, _ ' M1$
- MODEM.COUNT.RINGS.COMMAND$, _ ' M2$
- MODEM.ANSWER.COMMAND$, _ ' M3$
- MODEM.GO.OFFHOOK.COMMAND$, _ ' M4$
- DISK.FOR.DOS$, _ ' M38$
- DUMB.MODEM, _ ' M39
- COMMENTS.AS.MESSAGES, _ ' M40
- LSB, _ ' LSB
- MSB, _ ' MSB
- LINE.CONTROL.REGISTER, _ ' LCR
- MODEM.CONTROL.REGISTER, _ ' MCR
- LINE.STATUS.REGISTER, _ ' LSR
- MODEM.STATUS.REGISTER ' MSR
- 11707 IF DNLD.SUB < 1 OR DNLD.SUB > 99 THEN _
- GOTO 11710
- FOR I = 1 TO DNLD.SUB
- INPUT #1,DNLD$(I)
- NEXT
- 11710 GOSUB 22340
- '
- ' *****************************************************************************
- ' * CONVERT "RBBS-PC.DEF" PARAMETERS TO DISPLAYABLE VALUES, AS REQUIRED *
- ' *****************************************************************************
- '
- 11720 BULLETIN.MENU$ = RIGHT$(BULLETIN.MENU$,(LEN(BULLETIN.MENU$)-2))
- 11730 BULLETIN.PREFIX$ = RIGHT$(BULLETIN.PREFIX$,(LEN(BULLETIN.PREFIX$)-2))
- 11740 IF RECYCLE.TO.DOS = 0 THEN _
- RECYCLE.TO.DOS$ = "INTERNAL" ELSE _
- RECYCLE.TO.DOS$ = "SYSTEM
- 11750 DRIVE.FOR.HELP.FILES$ = LEFT$(HELP$(1),1)
- 11760 HELP$(1) = RIGHT$(HELP$(1),(LEN(HELP$(1))-2))
- 11770 HELP.FILE.PREFIX$ = LEFT$(HELP$(1),LEN(HELP$(1))-1)
- 11780 SF = SYSOP.FUNCTION(1)
- FOR I = 2 TO 7
- IF SYSOP.FUNCTION(I) > SF THEN _
- GOTO 11790
- SF = SYSOP.FUNCTION(I)
- 11790 NEXT
- 11800 MM = MAIN.FUNCTION(1)
- FOR I = 2 TO 21
- IF MAIN.FUNCTION(I) > MM THEN _
- GOTO 11810
- MM = MAIN.FUNCTION(I)
- 11810 NEXT
- 11820 FC = FILES.FUNCTION(1)
- FOR I = 2 TO 10
- IF FILES.FUNCTION(I) > FC THEN _
- GOTO 11830
- FC = FILES.FUNCTION(I)
- 11830 NEXT
- 11840 UE = UTILITY.FUNCTION(1)
- FOR I = 2 TO 16
- IF UTILITY.FUNCTION(I) > UE THEN _
- GOTO 11850
- UE = UTILITY.FUNCTION(I)
- 11850 NEXT
- 11860 CLOSE #1
- GOSUB 22340
- 11862 GOSUB 50480
- GOSUB 22340
- 11864 GOSUB 50530
- GOSUB 22340
- 11870 IF EXPERT.USER = 0 THEN _
- EXPERT.USER$ = "NOVICE
- 11880 IF EXPERT.USER = -1 THEN _
- EXPERT.USER$ = "EXPERT
- 11890 DRIVE.FOR.UPLOADS$ = RIGHT$(DOWNLOAD.DRIVES$,1)
- 11900 DRIVES.FOR.DOWNLOADS$ = LEFT$(DOWNLOAD.DRIVES$,(LEN(DOWNLOAD.DRIVES$)-1))
- 11910 PROMPT.BELL$ = "ON"
- IF PROMPT.BELL = 0 THEN _
- PROMPT.BELL$ = "OFF
- 11912 CODE.TYPE$ = "BASICA"
- IF CODE.TYPE = TRUE THEN _
- CODE.TYPE$ = "COMPILED
- 11914 BULLETINS.OPTIONAL$ = "NO"
- IF BULLETINS.OPTIONAL = TRUE THEN _
- BULLETINS.OPTIONAL$ = "YES
- 11916 M14$ = "ON"
- IF VAL(MID$(MODEM.INIT.COMMAND$,4,1)) = 0 THEN _
- M14$ = "OFF
- 11918 MESSAGE.REMINDER$ = "NO"
- IF MESSAGE.REMINDER = TRUE THEN _
- MESSAGE.REMINDER$ = "YES
- 11920 REQUIRE.NON.ASCII$ = "NO"
- IF REQUIRE.NON.ASCII = TRUE THEN _
- REQUIRE.NON.ASCII$ = "YES
- 11922 WELCOME.INTERRUPTABLE$ = "YES"
- IF WELCOME.INTERRUPTABLE = FALSE THEN _
- WELCOME.INTERRUPTABLE$ = "NO
- 11924 REMIND.FILE.TRANSFERS$ = "NO"
- IF REMIND.FILE.TRANSFERS = TRUE THEN _
- REMIND.FILE.TRANSFERS$ = "YES
- 11926 REMIND.PROFILE$ = "NO"
- IF REMIND.PROFILE = TRUE THEN _
- REMIND.PROFILE$ = "YES
- 11928 DOORS.AVAILABLE$ = "NO"
- IF DOORS.AVAILABLE = TRUE THEN _
- DOORS.AVAILABLE$ = "YES
- 11930 IF SYSOP.PASSWORD.1$ = "" THEN _
- MN1$ = "(Disabled)" ELSE _
- MN1$ = SYSOP.PASSWORD.1$
- 11931 IF SYSOP.PASSWORD.2$ = "" THEN _
- MN2$ = "(Disabled)" ELSE _
- MN2$ = SYSOP.PASSWORD.2$
- 11932 M11$ = "NO"
- IF PAGING.PRINTER.SUPPORT$ = ". " + CHR$(7) THEN _
- M11$ = "YES
- 11934 LIMIT.DAILY.TIME$ = "NO"
- IF LIMIT.DAILY.TIME = TRUE THEN _
- LIMIT.DAILY.TIME$ = "YES
- 11936 COMMANDS.BETWEEN.RINGS$ = "NO"
- IF COMMANDS.BETWEEN.RINGS = TRUE THEN _
- COMMANDS.BETWEEN.RINGS$ = "YES
- 11938 MNP.SUPPORT$ = "NO"
- IF MNP.SUPPORT = TRUE THEN _
- MNP.SUPPORT$ = "YES
- 11940 WILL.SUBDIRS.B.USED$ = "NO"
- IF WILL.SUBDIRS.B.USED = TRUE THEN _
- WILL.SUBDIRS.B.USED$ = "YES
- 11942 UPLOAD.TO.SUBDIR$ = "NO"
- IF UPLOAD.TO.SUBDIR = TRUE THEN _
- UPLOAD.TO.SUBDIR$ = "YES
- 11944 DOWNLOAD.TO.SUBDIR$ = "NO"
- IF DOWNLOAD.TO.SUBDIR = TRUE THEN _
- DOWNLOAD.TO.SUBDIR$ = "YES
- 11946 RESTRICT.BAUD$ = "NO"
- IF RESTRICT.BAUD = TRUE THEN _
- RESTRICT.BAUD$ = "YES
- 11947 IF RESTRICT.BAUD=-2 THEN _
- RESTRICT.BAUD$="YES=Registered users"
- 11948 USE.COLOR$ = "NO"
- IF USE.COLOR = TRUE THEN _
- USE.COLOR$ = "YES
- 11950 DISKFULL.GO.OFFLINE$ = "NO"
- IF DISKFULL.GO.OFFLINE = TRUE THEN _
- DISKFULL.GO.OFFLINE$ = "YES
- 11952 EXTENDED.LOGGING$ = "NO"
- IF EXTENDED.LOGGING = TRUE THEN _
- EXTENDED.LOGGING$ = "YES
- 11953 DUMB.MODEM$ = "NO"
- IF DUMB.MODEM = TRUE THEN _
- DUMB.MODEM$ = "YES
- 11954 COMMENTS.AS.MESSAGES$="NO"
- IF COMMENTS.AS.MESSAGES = TRUE THEN _
- COMMENTS.AS.MESSAGES$="YES
- 11955 TURBO.RBBS$="NO" ' CPC14-1C
- IF TURBO.RBBS = TRUE THEN _ ' CPC14-1C
- TURBO.RBBS$ = "YES" ' CPC14-1C
- '
- ' *****************************************************************************
- ' * IF A MESSAGE FILE EXISTS, READ IN THE PARAMETERS IN IT. *
- ' *****************************************************************************
- '
- 12150 Y$ = "
- 12151 F = 0
- 12155 MAINMSG$ = MAIN.MESSAGE.FILE$
- 12156 MAINUSR$ = MAIN.USER.FILE$
- 12160 KEY OFF
- GOSUB 22340
- 12161 CALLS.TODATE! = 0 ' set initial message number to 0
- 12162 FIRST.USER.RECORD = 1 ' USERS file -- first record number
- 12163 CURRENT.USER.COUNT = FIRST.USER.RECORD ' USERS file -- next available record number
- 12164 HIGHEST.USER.RECORD = MAX.USR.FILE.SIZE.FRM.DEF ' USERS file -- last record number
- 12165 FIRST.MESSAGE.RECORD = 2+ MAXIUM.NUMBER.OF.NODES ' MESSAGES file -- first record of messages
- 12166 NEXT.MESSAGE.RECORD = FIRST.MESSAGE.RECORD ' MESSAGES file -- next available record number
- 12167 HIGHEST.MESSAGE.RECORD = 5*MAX.ALLOWED.MSGS.FRM.DEF _
- + 1 + MAXIUM.NUMBER.OF.NODES ' MESSAGES file -- last record number
- 12168 MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF ' MESSAGES file -- maximum number of messages
- 12169 FILE$ = MAIN.MESSAGE.FILE$
- MESSAGE.FILE.FOUND = 0
- USER.FILE.FOUND = 0
- 12170 GOSUB 30000
- '
- ' If MESSAGES exist, get checkpoint record
- '
- 12171 IF OKAY THEN _
- MESSAGE.FILE.FOUND = OKAY : _
- GOSUB 30040 : _
- MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD : _
- MAX.MSG.FILE.SIZE.FRM.DEF! = HIGHEST.MESSAGE.RECORD : _
- MAX.ALLOWED.MSGS.FRM.DEF = INT((HIGHEST.MESSAGE.RECORD-FIRST.MESSAGE.RECORD)/5) + 1
- 12172 IF MAX.ALLOWED.MSGS.FRM.DEF > 999 THEN _
- MAX.ALLOWED.MSGS.FRM.DEF = VAL("999")
- 12173 IF MAXIMUM.NUMBER.OF.MSGS < 1 THEN _
- MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF : _
- GOSUB 30450 ' Assure number of msgs.>0
- 12174 FILE$ = MAIN.USER.FILE$ ' Check for USERS file
- 12175 GOSUB 30000
- '
- ' If USERS file exist, set values
- '
- 12176 IF OKAY THEN _
- USER.FILE.FOUND = OKAY : _
- FILE$ = MAIN.USER.FILE$ : _
- GOSUB 30180 : _
- MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD
- 12177 IF MESSAGE.FILE.FOUND <> -1 AND F <> 2 THEN _
- CURRENT.USER.COUNT = UG + 1 ' if no MESSAGES file, assume USERS full
- 12178 IF MESSAGE.FILE.FOUND = -1 THEN _
- GOSUB 30450 ' if MESSAGES file, re-write checkpoint
- 12179 IF MESSAGE.FILE.FOUND <> -1 THEN _
- GOSUB 30230 ' write new MESSAGES file if none
- 12180 IF USER.FILE.FOUND <> -1 AND MESSAGE.FILE.FOUND = -1 THEN _
- MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD : _
- GOSUB 50000 ' write new USERS file if none
- 12181 IF USER.FILE.FOUND <> -1 AND MESSAGE.FILE.FOUND <> -1 THEN _
- GOSUB 50000 ' write new USERS file if none
- 12182 FOR I = 1 TO 10
- KEY I,""
- NEXT
- 12183 B1 = MAX.USR.FILE.SIZE.FRM.DEF
- GOSUB 22140
- '
- ' *****************************************************************************
- ' * DISPLY CONFIG'S MAIN FUNCTION KEY MENU *
- ' *****************************************************************************
- '
- 12190 COLOR FG,BG,BORDER
- CLS
- I! = FRE(C$)
- 12200 COLOR 0,7,0
- LOCATE 4,10
- PRINT "RBBS-PC CPC14.1 CONFIGURATION PROGRAM " + CONFIG.VERSION$
- COLOR FG,BG,BORDER
- 12210 LOCATE 1,1,0
- PRINT "Copyright (c) 1983, 1984, 1985, 1986 Tom Mack"
- 12211 LOCATE 2,1,0
- PRINT "10210 Oxfordshire Rd., Great Falls, VA 22066";
- 12215 IF F THEN _
- GOSUB 24970
- 12220 LOCATE 6,2
- PRINT " F1 Global RBBS-PC Parameters (part 1)
- 12230 LOCATE 8,2
- PRINT " F2 Global RBBS-PC Parameters (part 2)
- 12240 LOCATE 10,2
- PRINT " F3 Parameters for static RBBS-PC Files
- 12250 LOCATE 12,2
- PRINT " F4 Parameters for dynamic RBBS-PC's Files
- 12260 LOCATE 14,2
- PRINT " F5 Parameters for RBBS-PC's 'Doors'
- 12270 LOCATE 16,2
- PRINT " F6 Parameters for RBBS-PC's Security
- 12280 LOCATE 18,2
- PRINT " F7 Parameters for multiple RBBS-PC's
- 12290 LOCATE 20,2
- PRINT " F8 RBBS-PC utilities
- 12295 LOCATE 22,2
- PRINT " F9 Use of DOS subdirectories"
- XX$ = "Press END to terminate or select function key to change parameters shown."
- GOSUB 50345
- 12310 GOSUB 22160
- 12320 IF IX THEN _
- ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,12350,12360,12350
- 12330 GOTO 12310
- 12350 GOSUB 60380
- GOTO 12310
- '
- ' *****************************************************************************
- ' * DISPLYA GLOBAL RBBS-PC PARAMETERS (PART 1) *
- ' *****************************************************************************
- '
- 12360 DISPLAYED.PAGE.NUMBER = 1
- 12370 GOSUB 24800
- 12380 LOCATE 3,10
- PRINT " 1. SYSOP's First Name --------------------------- " + SYSOP.FIRST.NAME$
- 12390 LOCATE 4,10
- PRINT " 2. SYSOP's Last Name ---------------------------- " + SYSOP.LAST.NAME$
- 12400 LOCATE 5,10
- PRINT " 3. Password #1 for SYSOP to sign on remotely ---- " + MN1$
- 12410 LOCATE 6,10
- PRINT " 4. Password #2 for SYSOP to sign on remotely----- " + MN2$
- 12420 LOCATE 7,10
- PRINT " 5. Password for SYSOP to sign on locally -------- " + LOCAL.PASSWORD$
- 12430 LOCATE 8,10
- PRINT " 6. SYSOP's default sign-on mode ----------------- " + EXPERT.USER$
- 12440 LOCATE 9,10
- PRINT " 7. SYSOP's office hours ------------------------ "STR$(START.OFFICE.HOURS);" to "STR$(END.OFFICE.HOURS)
- 12445 LOCATE 10,10
- PRINT " 8. Page SYSOP using printer's bell -------------- " + M11$
- 12450 LOCATE 11,10
- PRINT " 9. Number of rings to wait before answering -----"STR$(REQUIRED.RINGS)
- IF MID$(MODEM.INIT.COMMAND$,24,5) = "255 " THEN _ ' CPC14-1D
- LOCATE 11,63 : _ ' CPC14-1D
- PRINT "RING BACK"; ' CPC14-1D
- 12460 LOCATE 12,10
- PRINT "10. Deny access to callers who use 300 baud ------ " + RESTRICT.BAUD$
- 12470 LOCATE 13,10
- PRINT "11. Are you using ANSI.SYS with a color monitor -- " + USE.COLOR$
- 12480 LOCATE 14,10
- PRINT "12. Go off-line whenever a DISK FULL occurs ------ " + DISKFULL.GO.OFFLINE$
- 12490 LOCATE 15,10
- PRINT "13. Prompt bell default is ----------------------- " + PROMPT.BELL$
- 12500 LOCATE 16,10
- PRINT "14. Maximum time per session (in minutes) --------"STR$(MINUTES.PER.SESSION!)
- 12510 LOCATE 17,10
- PRINT "15. Limit each user to" + STR$(MINUTES.PER.SESSION!) + " minutes/day? " + STRING$((14-LEN(STR$(MINUTES.PER.SESSION!))),45) + " " + LIMIT.DAILY.TIME$
- 12530 LOCATE 18,10
- PRINT "16. # Months of inactivty before user deleted ----"STR$(ACT.MNTHS.B4.DELETING)
- 12560 LOCATE 19,10
- PRINT "17. Communications port to be used by RBBS-PC ---- " + COM.PORT$
- 12570 LOCATE 20,10
- PRINT "18. # of seconds to wait for modem to initialize -"STR$(MODEM.INIT.WAIT.TIME) ' CPC14-1C
- LOCATE 21, 10
- PRINT "19. Seconds to wait before issuing modem commands-"STR$(MODEM.COMMAND.DELAY.TIME) ' CPC14-1C
- 12575 LOCATE 22,10
- PRINT "20. Name of RBBS-PC shown initially is ----------- " + RBBS.NAME$
- 12580 GOSUB 24890
- 12590 GOSUB 22160
- 12600 IF IX THEN _
- ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,12190,14200,12620
- 12610 GOTO 12590
- 12620 GOSUB 50340
- IF VAL(HJ$) < 1 OR VAL(HJ$) > 20 THEN _ ' CPC14-1C
- GOTO 12580
- ON VAL(HJ$) GOTO 12840,12910,12980,13060,12670,13140,13210,13224,13228,13238,13245,13249,13750,13840,16650,13940,14120,15240,15250,13131 ' CPC14-1C
- '
- ' *****************************************************************************
- ' * PROCESS THE PASSWORD SELECTED FOR THE LOCAL SYSOP TO TAKE OVER RBBS-PC *
- ' *****************************************************************************
- '
- 12670 GOSUB 31060
- PRINT "Enter password (8 characters or less)";
- GOSUB 14990
- IF LEN(HJ$)>8 OR INSTR(HJ$,"0!") THEN _
- HJ$ = "5" : _
- GOTO 12670 ' CPC14-1C
- LOCAL.PASSWORD$ = HJ$ ' CPC14-1C
- GOTO 12360 ' CPC14-1C
- '
- ' *****************************************************************************
- ' * PROCESS NAME OF UPLOAD DIRECTORY *
- ' *****************************************************************************
- '
- 12730 GOSUB 13590
- UPLOAD.DIRECTORY$ = HJ$
- GOTO 14570
- '
- ' *****************************************************************************
- ' * GET THE SYSOP'S FIRST NAME *
- ' *****************************************************************************
- '
- 12840 LOCATE 24,5
- PRINT "What is the SYSOP's FIRST name? ";
- 12850 LINE INPUT;HJ$
- 12860 IF HJ$ = "" THEN _
- GOTO 12840
- 12870 IF LEN(HJ$) < 3 THEN _
- GOTO 12840
- 12880 GOSUB 50654
- 12890 SYSOP.FIRST.NAME$ = HJ$
- 12900 GOTO 12360
- '
- ' *****************************************************************************
- ' * PROCESS THE SYSOP'S LAST NAME *
- ' *****************************************************************************
- '
- 12910 LOCATE 24,5
- PRINT "What is the SYSOP's LAST name? ";
- 12920 LINE INPUT;HJ$
- 12930 IF HJ$ = "" THEN _
- GOTO 12910
- 12940 IF LEN(HJ$) < 3 THEN _
- GOTO 12910
- 12950 GOSUB 50654
- 12960 SYSOP.LAST.NAME$ = HJ$
- 12970 GOTO 12360
- '
- ' *****************************************************************************
- ' * PROCESS THE "PSEUDONYM" (FIRST NAME) USED BY THE SYSOP TO LOGON REMOTELY *
- ' *****************************************************************************
- '
- 12980 LOCATE 24,5
- PRINT "What is the SYSOP's Password #1? ";
- 12990 LINE INPUT;HJ$
- 13020 GOSUB 50654
- 13030 SYSOP.PASSWORD.1$ = HJ$
- 13040 IF SYSOP.PASSWORD.1$ = "" THEN _
- MN1$ = "(Disabled)" ELSE _
- MN1$ = SYSOP.PASSWORD.1$
- 13050 GOTO 12360
- '
- ' *****************************************************************************
- ' * PROCESS THE "PSEUDONYM" (LAST NAME) USED BY THE SYSOP TO LOGON REMOTELY *
- ' *****************************************************************************
- '
- 13060 LOCATE 24,5
- PRINT "What is the SYSOP's Password #2? ";
- 13070 LINE INPUT;HJ$
- 13100 GOSUB 50654
- 13110 SYSOP.PASSWORD.2$ = HJ$
- 13120 IF SYSOP.PASSWORD.2$ = "" THEN _
- MN2$ = "(Disabled)" ELSE _
- MN2$ = SYSOP.PASSWORD.2$
- 13130 GOTO 12360
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO GIVE THIS RBBS-PC A PERSONAL NAME *
- ' *****************************************************************************
- '
- 13131 LOCATE 24,5
- PRINT "Enter name for this RBBS-PC (19 characters or less) ";
- 13132 LINE INPUT;HJ$
- 13133 IF LEN(HJ$) > 19 THEN _
- GOTO 13131
- 13134 GOSUB 50654
- 13135 RBBS.NAME$ = HJ$
- 13136 GOTO 12360
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SELECT "EXPERT" OR "NOVICE" AS HIS DEFAULT MODE *
- ' *****************************************************************************
- '
- 13140 LOCATE 24,5
- PRINT "SYSOP's default sign-on mode (EXPERT/NOVICE)? ";
- 13150 LINE INPUT;HJ$
- 13160 IF LEN(HJ$) = 6 OR LEN(HJ$) = 1 THEN _
- GOTO 13170
- GOTO 13140
- 13170 GOSUB 50654
- 13180 IF HJ$ = "E" OR HJ$ = "EXPERT" THEN _
- EXPERT.USER$ = "EXPERT" : _
- GOTO 12360
- 13190 IF HJ$ = "N" OR HJ$ = "NOVICE" THEN _
- EXPERT.USER$ = "NOVICE" :_
- GOTO 12360
- 13200 GOTO 13140
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SELECT HIS "OFFICE HOURS" *
- ' *****************************************************************************
- '
- 13210 LOCATE 24,5
- PRINT "What is the earliest SYSOP wants to be paged? -- HHMM ";
- 13211 LINE INPUT;HJ$
- 13212 IF LEN(HJ$) <> 4 THEN _
- GOTO 13210
- 13213 IF FIX(VAL(MID$(HJ$,1,2))) < 0 OR _
- FIX(VAL(MID$(HJ$,1,2))) > 24 OR _
- FIX(VAL(MID$(HJ$,3,2))) < 0 OR _
- FIX(VAL(MID$(HJ$,3,2))) > 59 THEN _
- GOTO 13210
- 13214 START.OFFICE.HOURS = VAL(HJ$)
- 13215 IF START.OFFICE.HOURS < 0 OR START.OFFICE.HOURS > 2400 THEN _
- GOTO 13210
- 13216 LOCATE 25,5
- PRINT "What is the latest SYSOP wants to be paged? ---- HHMM ";
- 13217 LINE INPUT;HJ$
- 13218 IF LEN(HJ$) <> 4 THEN _
- GOTO 13216
- 13219 IF FIX(VAL(MID$(HJ$,1,2))) < 0 OR _
- FIX(VAL(MID$(HJ$,1,2))) > 24 OR _
- FIX(VAL(MID$(HJ$,3,2))) < 0 OR _
- FIX(VAL(MID$(HJ$,3,2))) > 59 THEN _
- GOTO 13216
- 13220 END.OFFICE.HOURS = VAL(HJ$)
- 13221 IF END.OFFICE.HOURS < 0 OR END.OFFICE.HOURS > 2400 THEN _
- GOTO 13216
- 13222 IF START.OFFICE.HOURS > END.OFFICE.HOURS THEN _
- SWAP START.OFFICE.HOURS,END.OFFICE.HOURS
- 13223 GOTO 12360
- '
- ' *****************************************************************************
- ' * DETERMINE IF THE PRINTER'S "BELL" IS TO BE USED WHEN PAGING *
- ' *****************************************************************************
- '
- 13224 XX$ = "Use on-line printer's bell to the page SYSOP? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 13226,13226,13224,13224
- 13226 M11$ = HJ$
- 13227 GOTO 12360
- '
- ' *****************************************************************************
- ' * DETERMINE THE NUMBER OF RINGS RBBS-PC IS TO WAIT BEFORE ANSWERING *
- ' *****************************************************************************
- '
- 13228 A$ = ""
- 13229 XX$ = "How many rings should RBBS-PC wait before answering? " + A$
- GOSUB 50345
- 13230 LINE INPUT;HJ$
- 13231 REQUIRED.RINGS = FIX(VAL(HJ$))
- 13232 IF REQUIRED.RINGS < 0 OR REQUIRED.RINGS > 255 THEN _
- GOTO 13228
- IF REQUIRED.RINGS = 0 THEN _
- MID$(MODEM.INIT.COMMAND$,6,1) = "0" : _ ' CPC14-1D
- MID$(MODEM.INIT.COMMAND$,24,5) = "1V1X1" : _ ' CPC14-1D
- GOTO 12360
- 13233 XX$ = "Next call answered after" + STR$(REQUIRED.RINGS) + " rings. Do you want ringback? (YES/NO)"
- GOSUB 50345
- 13234 GOSUB 22380
- ON AB GOTO 13237,13235,13233,13233
- 13235 IF REQUIRED.RINGS > 5 THEN _
- A$ = "(<6 for ringback)" : _
- GOTO 13229
- 13236 MID$(MODEM.INIT.COMMAND$,24,5) = "255 "
- GOTO 12360
- 13237 MID$(MODEM.INIT.COMMAND$,24,5) = "254 " ' CPC14-1D
- GOTO 12360
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO ELECT TO HANDLE CALLS FROM 300 BAUD USERS *
- ' *****************************************************************************
- '
- 13238 LOCATE 24,5
- PRINT"Do you want to decline calls from users at 300 BAUD (YES OR NO) ";
- 13239 GOSUB 22380
- ON AB GOTO 13243,13240,13238,13238
- 13240 GOSUB 50340
- LOCATE 24,5
- PRINT"Are registered users denied use of 300 BAUD (YES OR NO) ";
- 13241 GOSUB 22380
- ON AB GOTO 13242,13243,13240,13240
- 13242 HJ$="YES=Registered users"
- 13243 RESTRICT.BAUD$=HJ$
- 13244 GOTO 12360
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO ELECT TO DISPLAY COLOR/GRAPHICS ON HIS LOCAL MONITOR *
- ' *****************************************************************************
- '
- 13245 LOCATE 24,5
- PRINT" Using ANSI.SYS for color/graphics on your color monitor (YES OR NO) ";
- 13246 GOSUB 22380
- ON AB GOTO 13247,13247,13245,13245
- 13247 USE.COLOR$=HJ$
- 13248 GOTO 12360
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO ELECT TO GO OFF-LINE WHEN A DISK FULL CONDITIONS OCCURS*
- ' *****************************************************************************
- '
- 13249 LOCATE 24,5
- PRINT"Should RBBS-PC go off-line when DISK FULL occurs (YES OR NO) ";
- 13250 GOSUB 22380
- ON AB GOTO 13251,13251,13249,13249
- 13251 DISKFULL.GO.OFFLINE$=HJ$
- 13252 GOTO 12360
- '
- ' *****************************************************************************
- ' * REQUEST DRIVE SPECIFICATION IN THE RANGE "A" TO THE MAXIMUM ALLOWABLE *
- ' *****************************************************************************
- '
- 13253 LOCATE 24,5
- PRINT"Specify single drive in the range A->"+M$+" for "+A$;
- 13254 LINE INPUT;HJ$
- 13420 IF LEN(HJ$) <> 1 THEN _
- GOTO 13253
- 13430 GOSUB 50654
- 13440 IF HJ$ < "A" OR HJ$ > M$ THEN _
- GOTO 13253
- 13460 RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE DRIVES AVAILABLE FOR DOWNLOADING TO BE SELECTED *
- ' *****************************************************************************
- '
- 13470 LOCATE 24,5
- PRINT "Specify download drives (max of" + STR$(MAXD) + " in the range A-> " + M$ + "). ";
- 13480 LINE INPUT;HJ$
- 13490 IF LEN(HJ$) < 1 OR LEN(HJ$) > MAXD THEN _
- GOTO 13470
- 13500 GOSUB 50654
- 13510 FOR I = 1 TO LEN(HJ$)
- 13520 A$(I) = MID$(HJ$,I,1)
- 13530 NEXT
- 13540 FOR I = 1 TO LEN(HJ$)
- 13550 IF A$(I) < "A" OR A$(I) > M$ THEN _
- GOTO 13470
- 13560 NEXT
- 13570 DRIVES.FOR.DOWNLOADS$ = HJ$
- 13571 IF DNLD.SUB < 1 THEN _
- GOTO 14570
- 13572 FOR I = 1 TO DNLD.SUB
- 13573 IF INSTR(1,DRIVES.FOR.DOWNLOADS$,LEFT$(DNLD$(I),1)) = 0 THEN _
- DNLD$(I) = ""
- 13577 NEXT
- 13578 STOPIT = DNLD.SUB
- 13579 FOR I = 1 TO STOPIT
- 13580 IF DNLD$(I) <> "" THEN _
- GOTO 13583
- 13581 DNLD$(I) = DNLD$(I + 1)
- 13582 DNLD$(I + 1) = ""
- 13583 NEXT
- 13584 DNLD.SUB = 0
- 13585 FOR I = 1 TO STOPIT
- 13586 IF DNLD$(I) <> "" THEN _
- DNLD.SUB = DNLD.SUB + 1
- 13587 NEXT
- 13588 GOTO 14570
- '
- ' *****************************************************************************
- ' * DETERMINE THE NAME OF THE UPLOAD DIRECTORY (A TEXT FILE) *
- ' *****************************************************************************
- '
- 13590 A$ = "Name of upload directory (max of 8 characters)."
- MAX = 8
- GOTO 13599
- 13591 A$ = "Master directory name--used as ext. for others. (3 char. max)."
- MAX = 3
- 13599 LOCATE 24,5
- PRINT A$;
- 13600 LINE INPUT;HJ$
- GOSUB 50654
- 13610 IF LEN(HJ$) < 1 OR LEN(HJ$) > MAX THEN _
- GOTO 13599
- 13615 I = 0
- GOSUB 25920
- IF I = 0 THEN _
- RETURN
- GOTO 13599
- '
- ' *****************************************************************************
- ' * IS THE DEFAULT TO HAVE THE PROMPT BELL ON AFTER EACH COMMAND? *
- ' *****************************************************************************
- '
- 13750 LOCATE 24,5
- PRINT "Prompt bell default? (ON or OFF) ";
- 13760 LINE INPUT;HJ$
- 13770 IF LEN(HJ$) < 1 OR LEN(HJ$) > 3 THEN _
- GOTO 13750
- 13780 GOSUB 50654
- 13790 IF HJ$ = "ON" THEN _
- GOTO 13820
- 13800 IF HJ$ = "OFF" THEN _
- GOTO 13820
- 13810 GOTO 13750
- 13820 PROMPT.BELL$ = HJ$
- 13830 GOTO 12360
- '
- ' *****************************************************************************
- ' * SPECIFY THE MAXIMUM TIME A USER CAN STAY ON (THE DEFAULT) *
- ' *****************************************************************************
- '
- 13840 LOCATE 24,5
- PRINT "Set maximum minutes a user can stay on the system ";
- 13850 LINE INPUT;HJ$
- 13860 MINUTES.PER.SESSION! = VAL(HJ$)
- 13870 IF MINUTES.PER.SESSION! < 0 OR MINUTES.PER.SESSION! > 1440 THEN _
- GOTO 13840
- 13880 GOTO 12360
- '
- ' ******************************************************************************
- ' * ALLOW THE MAXIMUM NUMBER OF MESSAGES ALLOWED TO BE SELECTED *
- ' ******************************************************************************
- '
- 13890 J = 999
- IF ((MAX.MSG.FILE.SIZE.FRM.DEF!-1-MAXIUM.NUMBER.OF.NODES)/5)<J THEN _
- J = (MAX.MSG.FILE.SIZE.FRM.DEF!-1-MAXIUM.NUMBER.OF.NODES)/5
- 13895 GOSUB 50340
- LOCATE 24,5
- PRINT "Set maximum number of messages allowed (MAX = " + STR$(FIX(J)) + ")";
- 13900 LINE INPUT;HJ$
- 13910 MAX.ALLOWED.MSGS.FRM.DEF = VAL(HJ$)
- 13920 IF MAX.ALLOWED.MSGS.FRM.DEF < 1 AND _
- MAX.ALLOWED.MSGS.FRM.DEF > 999 THEN _
- GOTO 13890
- 13922 IF MAX.ALLOWED.MSGS.FRM.DEF > 0 AND _
- MAX.ALLOWED.MSGS.FRM.DEF < 1000 AND _
- MAX.ALLOWED.MSGS.FRM.DEF < J + 1 THEN _
- GOTO 13929
- 13924 XX$ = "Increase the " + MAIN.MESSAGE.FILE$ + " file to " + STR$((MAX.ALLOWED.MSGS.FRM.DEF*5) + 1 + MAXIUM.NUMBER.OF.NODES) + " records? (YES OR NO) "
- GOSUB 50345
- 13926 GOSUB 22380
- ON AB GOTO 13890,13927,13890,13890
- 13927 MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF
- GOSUB 30450
- B3! = (MAX.ALLOWED.MSGS.FRM.DEF*5) + 1 + MAXIUM.NUMBER.OF.NODES
- GOSUB 22080
- GOTO 21550
- 13929 MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF
- GOSUB 30450
- 13930 GOTO 21550
- '
- ' *****************************************************************************
- ' * IDENTIFY THE NUMBER OF MONTHS A USER CAN BE INACTIVE BEFORE HE IS PURGED *
- ' *****************************************************************************
- '
- 13940 LOCATE 24,5
- PRINT "Set number of months before an inactive user is purged. ";
- 13950 LINE INPUT;HJ$
- 13960 ACT.MNTHS.B4.DELETING = VAL(HJ$)
- 13970 IF ACT.MNTHS.B4.DELETING < 1 OR ACT.MNTHS.B4.DELETING > 12 THEN _
- GOTO 13940
- 13980 GOTO 12360
- '
- ' *****************************************************************************
- ' * SPECIFY THE COMMUNICATIONS PORT TO BE USED (1 OR 2) *
- ' *****************************************************************************
- '
- 14120 COM1 = 1
- 14130 COM2 = 2
- 14140 LOCATE 24,5
- PRINT "Number of communication port to be used (" + STR$(COM1) + " or" + STR$(COM2) + " )? ";
- 14150 LINE INPUT;HJ$
- 14160 IF LEN(HJ$) <> 1 THEN _
- GOTO 14120
- 14170 IF FIX(VAL(MID$(HJ$,1,1))) < COM1 OR _
- FIX(VAL(MID$(HJ$,1,1))) > COM2 THEN _
- GOTO 14120
- 14180 COM.PORT$ = "COM" + HJ$
- 14190 GOTO 12360
- '
- ' *****************************************************************************
- ' * DISPLAY GLOBAL RBBS-PC PARAMETERS (PART 1) *
- ' *****************************************************************************
- '
- 14200 DISPLAYED.PAGE.NUMBER = 2
- 14210 GOSUB 24800
- 14220 LOCATE 3,10
- PRINT "21. Foreground color (for color monitors) is -----"STR$(FG)
- 14230 LOCATE 4,10
- PRINT "22. Background color (for color monitors) is -----"STR$(BG)
- 14240 LOCATE 5,10
- PRINT "23. The border color (for color monitors) is -----"STR$(BORDER)
- 14250 LOCATE 6,10
- PRINT "24. The modem speaker default is ----------------- " + M14$
- 14260 LOCATE 7,10
- PRINT "25. Remind users of messages that they left ------ " + MESSAGE.REMINDER$
- 14270 LOCATE 8,10
- PRINT "26. Remind users of # uploads and downloads? ----- " + REMIND.FILE.TRANSFERS$
- 14275 LOCATE 9,10
- PRINT "27. Remind users of their terminal profile? ------ " + REMIND.PROFILE$
- 14280 LOCATE 10,10
- PRINT "28. Default user page length is ------------------"STR$(PAGE.LENGTH)
- 14290 LOCATE 11,10
- PRINT "29. Maximum number of lines allowed per message --"STR$(MAX.MESSAGE.LINES)
- 14300 LOCATE 12,10
- PRINT "30. Require non-ascii protocol for binary files -- " + REQUIRE.NON.ASCII$
- 14305 LOCATE 13,10
- PRINT "31. Is MICROCOM's MNP protocol available? -------- " + MNP.SUPPORT$
- 14310 LOCATE 14,10
- PRINT "32. Omit ";DIRECTORY.EXTENTION$;" from N)ew command ";STRING$(22-LEN(DIRECTORY.EXTENTION$),"-");" ";OMIT.MAIN.DIRECTORY$
- 14320 LOCATE 15,10
- PRINT "33. Omit "; + UPLOAD.DIRECTORY$;" from N)ew command ";STRING$(22-LEN(UPLOAD.DIRECTORY$),"-");" ";OMIT.UPLOAD.DIRECTORY$
- 14330 LOCATE 16,10
- PRINT "34. Is system 'welcome' interruptable? ----------- " + WELCOME.INTERRUPTABLE$
- 14340 LOCATE 17,10
- PRINT "35. Are system bulletins to be 'optional'? ------- " + BULLETINS.OPTIONAL$
- 14360 GOSUB 16062
- LOCATE 18,10
- PRINT "36. Type of PC RBBS-PC will be running on? ------- " + COMPUTER.TYPE$
- 14365 LOCATE 19,10
- PRINT "37. Issue modem commands between rings ----------- " + COMMANDS.BETWEEN.RINGS$
- 14366 LOCATE 20,10
- PRINT "38. Baud rate to initially open modem at --------- " + MODEM.INIT.BAUD$
- 14367 LOCATE 21,10
- PRINT "39. Seconds waited before logging off idle users -" + STR$(WAIT.BEFORE.DISCONNECT)
- 14368 LOCATE 22,10
- PRINT "40. Are you using a 'DUMB' auto-answer modem? -----" + DUMB.MODEM$
- 14370 GOSUB 24890
- 14380 GOSUB 22160
- 14390 IF IX THEN _
- ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,12360,14570,14410
- 14400 GOTO 14380
- 14410 GOSUB 50340
- IF VAL(HJ$) < 21 OR VAL(HJ$) > 40 THEN _
- GOTO 14370
- ON VAL(HJ$)-20 GOTO 14420,14430,14440,15710,15800,16690,16722,16730,16790,15880,15911,15920,15960,16000,15840,16040,16121,16124,16031,16725
- 14420 GOSUB 15520
- GOTO 15530
- 14430 GOSUB 15520
- GOTO 15590
- 14440 GOSUB 15520
- GOTO 15650
- '
- ' *****************************************************************************
- ' * DISPLAY PARAMETERS FOR STATIC RBBS-PC FILES *
- ' *****************************************************************************
- '
- 14570 DISPLAYED.PAGE.NUMBER = 3
- 14580 GOSUB 24800
- 14590 LOCATE 3,10
- PRINT "41. Drive containing RBBS-PC bulletins is -------- " + DRIVE.FOR.BULLETINS$
- 14600 LOCATE 4,10
- PRINT "42. Name of file describing 'bulletins' is ------- " + BULLETIN.MENU$
- 14610 LOCATE 5,10
- PRINT "43. Number of active 'bulletins' -----------------" + STR$(ACTIVE.BULLETINS)
- 14620 LOCATE 6,10
- PRINT "44. Prefix used to name bulletin files is -------- " + BULLETIN.PREFIX$
- 14630 LOCATE 7,10
- PRINT "45. Drive containing 'help' files is ------------- " + DRIVE.FOR.HELP.FILES$
- 14640 LOCATE 8,10
- PRINT "46. Prefix used to name the nine 'help' files ---- " + HELP.FILE.PREFIX$
- 14650 LOCATE 9,10
- PRINT "47. Name of 'newuser' file shown to new users ---- " + NEWUSER.FILE$
- 14660 LOCATE 10,10
- PRINT "48. Name of 'welcome' file shown at logon -------- " + WELCOME.FILE$
- 14670 LOCATE 11,10
- PRINT "49. File directory ext. (name of master directory) " + DIRECTORY.EXTENTION$
- 14680 LOCATE 12,10
- PRINT "50. The SYSOP's command menu is named ------------ " + MENU$(1)
- 14690 LOCATE 13,10
- PRINT "51. The main messages subsystem menu is named ---- " + MENU$(2)
- 14700 LOCATE 14,10
- PRINT "52. The file subsystem menu is named ------------- " + MENU$(3)
- 14710 LOCATE 15,10
- PRINT "53. The utilities subsystem menu is named -------- " + MENU$(4)
- 14730 LOCATE 16,10
- PRINT "54. Menu that lists available conferences is ----- " + CONFERENCE.MENU$
- 14740 LOCATE 17,10
- PRINT "55. File containing invalid user names ----------- " + TRASHCAN.FILE$
- 14742 LOCATE 18,10
- PRINT "56. Factor to extend session time for uploads ----" + STR$(UPLOAD.TIME.FACTOR!)
- 14744 LOCATE 19,10
- PRINT "57. Default system type for new callers ---------- " + DEFAULT.MACHINE.TYPE$
- 14745 LOCATE 20,10
- PRINT "58. Drive available for Uploading ---------------- " + DRIVE.FOR.UPLOADS$
- 14746 LOCATE 21,10
- PRINT "59. Name of directory for uploading -------------- " + UPLOAD.DIRECTORY$
- 14747 LOCATE 22,10
- PRINT "60. Drive(s) available for Downloading ----------- " + DRIVES.FOR.DOWNLOADS$
- 14750 GOSUB 24890
- 14760 GOSUB 22160
- 14770 IF IX THEN _
- ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,14200,15340,14790
- 14780 GOTO 14760
- 14790 GOSUB 50340
- 14800 IF HJ$ = "41" THEN _
- GOSUB 15160 : _
- DRIVE.FOR.BULLETINS$ = TB$ : _
- GOTO 14570
- 14810 IF HJ$ = "42" THEN _
- GOSUB 14970 : _
- BULLETIN.MENU$ = HJ$ : _
- GOTO 14570
- 14820 IF HJ$ = "43" THEN _
- GOTO 15290
- 14830 IF HJ$ = "44" THEN _
- GOSUB 14970 : _
- IF LEN(HJ$) > 6 THEN _
- HJ$ = "44" : _
- GOTO 14810 ELSE _
- BULLETIN.PREFIX$ = HJ$ : _
- GOTO 14570
- 14840 IF HJ$ = "45" THEN _
- GOSUB 15160 : _
- DRIVE.FOR.HELP.FILES$ = HJ$ : _
- GOTO 14570
- 14850 IF HJ$ = "46" THEN _
- GOSUB 14970 : _
- IF LEN(HJ$) > 7 THEN _
- HJ$ = "44" : _
- GOTO 14810 ELSE _
- HELP.FILE.PREFIX$ = HJ$ : _
- GOTO 14570
- 14860 IF HJ$ = "47" THEN _
- GOSUB 17330 : _
- NEWUSER.FILE$ = SJ$ + ":" + HJ$ : _
- GOTO 14570
- 14870 IF HJ$ = "48" THEN _
- GOSUB 17330 : _
- WELCOME.FILE$ = SJ$ + ":" + HJ$ : _
- GOTO 14570
- 14880 IF HJ$ = "49" THEN _
- GOSUB 13591 : _
- DIRECTORY.EXTENTION$ = HJ$ : _
- GOTO 14570
- 14890 IF HJ$ = "50" THEN _
- GOSUB 17330 : _
- MENU$(1) = SJ$ + ":" + HJ$ : _
- GOTO 14570
- 14900 IF HJ$ = "51" THEN _
- GOSUB 17330 : _
- MENU$(2) = SJ$ + ":" + HJ$ : _
- GOTO 14570
- 14910 IF HJ$ = "52" THEN _
- GOSUB 17330 : _
- MENU$(3) = SJ$ + ":" + HJ$ : _
- GOTO 14570
- 14920 IF HJ$ = "53" THEN _
- GOSUB 17330 :MENU$(4) = SJ$ + ":" + HJ$ : _
- GOTO 14570
- 14940 IF HJ$ = "54" THEN _
- GOSUB 17330 : _
- CONFERENCE.MENU$ = SJ$ + ":" + HJ$ : _
- GOTO 14570
- 14950 IF HJ$ = "55" THEN _
- GOSUB 17330 : _
- TRASHCAN.FILE$ = SJ$ + ":" + HJ$ : _
- GOTO 14570
- 14952 IF HJ$ = "56" THEN _
- GOSUB 15234 : _
- GOTO 14570
- 14954 IF HJ$ = "57" THEN _
- GOSUB 15236 : _
- GOTO 14570
- 14955 IF HJ$ = "58" THEN _
- A$ = "uploading" :_
- GOSUB 13253 : _
- DRIVE.FOR.UPLOADS$ = HJ$ : _
- IF LEN(UPLOAD.SUBDIR$)>1 THEN _
- MID$(UPLOAD.SUBDIR$,1,1) = DRIVE.FOR.UPLOADS$ : _
- GOTO 14570 ELSE _
- GOTO 14570
- 14956 IF HJ$ = "59" THEN _
- GOTO 12730
- 14957 IF HJ$ = "60" THEN _
- GOTO 13470
- 14960 GOTO 14750
- '
- ' *****************************************************************************
- ' * GENERALIZED ROUTINE TO SELECT FILE NAME FOR ANY OPTION WITHIN CONFIG *
- ' *****************************************************************************
- '
- 14970 X$ = HJ$
- 14980 GOSUB 31060
- PRINT "Specify name of the file for option " + X$ + ". ";
- 14990 LINE INPUT;HJ$
- GOSUB 50654
- 15000 IF LEN(HJ$) < 1 OR LEN(HJ$) > 12 THEN _
- GOTO 14980
- 15010 L1 = INSTR(HJ$,".")
- IF L1 = 0 THEN _
- IF LEN(HJ$) < 9 THEN _
- GOTO 15045 ELSE _
- GOTO 14980
- 15020 IF L1 > 9 THEN _
- GOTO 14980
- 15030 IF L1 < 2 THEN _
- GOTO 14980
- 15040 IF LEN(HJ$)-L1 > 3 THEN _
- GOTO 14980
- 15045 I = 0
- GOSUB 25920
- IF I = 0 THEN _
- RETURN
- GOTO 14980
- 15160 X$ = HJ$
- 15170 LOCATE 24,5
- PRINT "Specify drive in the range A->" + M$ + " for option " + X$". ";
- 15180 LINE INPUT;HJ$
- 15190 IF LEN(HJ$) <> 1 THEN _
- GOTO 15170
- 15200 GOSUB 50654
- 15210 IF HJ$ < "A" OR HJ$ > M$ THEN _
- GOTO 15170
- 15220 TB$ = HJ$
- 15230 RETURN
- '
- ' *****************************************************************************
- ' * ALLOW A SYSOP TO EXTEND A USER'S TIME FOR UPLOADS *
- ' *****************************************************************************
- '
- 15234 LOCATE 24,5
- PRINT "Extend by what fraction of time uploading ";
- LINE INPUT;HJ$
- IF VAL(HJ$) < 0 OR VAL(HJ$) > 10 THEN _
- GOTO 15234
- UPLOAD.TIME.FACTOR! = VAL(HJ$)
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW A DEFAULT SYSTEM TYPE TO EXIT FOR NEW USERS WHEN THEY LOG ON *
- ' *****************************************************************************
- '
- 15236 LOCATE 24,5
- PRINT "Enter default system type ";
- LINE INPUT;DEFAULT.MACHINE.TYPE$
- IF LEN(DEFAULT.MACHINE.TYPE$) < 2 THEN _
- GOSUB 50340 : _
- GOTO 15236
- RETURN
- '
- ' *****************************************************************************
- ' * REQUEST NUMBER OF SECONDS TO WAIT AFTER INITIALIZING THE MODEM *
- ' *****************************************************************************
- '
- 15240 LOCATE 24,5 ' CPC14-1C
- PRINT "How many seconds of delay after modem initilization (1 to 99)?"; ' CPC14-1C
- LINE INPUT;HJ$ ' CPC14-1C
- B1 = VAL(HJ$) ' CPC14-1C
- IF B1 < 1 OR B1 > 99 THEN _ ' CPC14-1C
- GOTO 15240 ' CPC14-1C
- MODEM.INIT.WAIT.TIME = B1 ' CPC14-1C
- GOTO 12360 ' CPC14-1C
- '
- ' *****************************************************************************
- ' * REQUEST NUMBER OF SECONDS TO DELAY PRIOR TO ISSUING MODEM COMMANDS *
- ' *****************************************************************************
- '
- 15250 LOCATE 24,5 ' CPC14-1C
- PRINT "# seconds to delay prior to issuing modem commands (0 to 99)?"; ' CPC14-1C
- LINE INPUT;HJ$ ' CPC14-1C
- B1 = VAL(HJ$) ' CPC14-1C
- IF B1 < 0 OR B1 > 99 THEN _ ' CPC14-1C
- GOTO 15250 ' CPC14-1C
- MODEM.COMMAND.DELAY.TIME = B1 ' CPC14-1C
- GOTO 12360 ' CPC14-1C
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SPECIFY THE NUMBER OF ACTIVE BULLETINS *
- ' *****************************************************************************
- '
- 15290 LOCATE 24,5
- PRINT "Enter number of active 'bulletins' (0 to 99)";
- 15300 LINE INPUT;HJ$
- 15310 B1% = VAL(HJ$)
- 15320 IF B1% < 0 OR B1% > 99 THEN _
- GOTO 15290
- 15330 ACTIVE.BULLETINS = B1%
- GOTO 14570
- '
- ' *****************************************************************************
- ' * DISPLAY PARAMETERS FOR DYNAMEIC RBBS-PC FILES *
- ' *****************************************************************************
- '
- 15340 DISPLAYED.PAGE.NUMBER = 4
- 15350 GOSUB 24800
- 15360 LOCATE 4,10
- PRINT "61. System file containing messages is named ----- " + MAIN.MESSAGE.FILE$
- 15380 LOCATE 5,10
- PRINT "62. System file for 'callers' is named ----------- " + CALLERS.FILE$
- 15390 LOCATE 6,10
- PRINT "63. System file for comments to SYSOP is named --- " + COMMENTS.FILE$
- 15400 LOCATE 7,10
- PRINT "64. System file for recording users is named ----- " + MAIN.USER.FILE$
- 15405 LOCATE 8,10
- PRINT "65. Extended logging to 'callers' file ----------- " + EXTENDED.LOGGING$
- 15406 LOCATE 9,10
- PRINT"66. Record comments as private messages ---------- "+COMMENTS.AS.MESSAGES$
- LOCATE 10,10 ' CPC14-1C
- PRINT"67. Use machine language routines for speed ------ "+TURBO.RBBS$ ' CPC14-1C
- 15410 GOSUB 24890
- 15420 GOSUB 22160
- 15430 IF IX THEN _
- ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,14570,16130,15450
- 15440 GOTO 15420
- 15450 GOSUB 50340
- 15460 IF HJ$ = "61" THEN _
- GOSUB 17330 : _
- GOTO 15511
- 15480 IF HJ$ = "62" THEN _
- GOSUB 17330 : _
- CALLERS.FILE$ = SJ$ + ":" + HJ$ : _
- GOTO 15340
- 15490 IF HJ$ = "63" THEN _
- GOSUB 17330 : _
- COMMENTS.FILE$ = SJ$ + ":" + HJ$ : _
- GOTO 15340
- 15500 IF HJ$ = "64" THEN _
- GOSUB 17330 : _
- GOTO 15512
- 15505 IF HJ$ = "65" THEN _
- GOTO 15991
- 15506 IF HJ$ = "66" THEN _
- GOTO 15993
- IF HJ$ = "67" THEN _ ' CPC14-1C
- GOTO 15820 ' CPC14-1C
- 15510 GOTO 15410
- 15511 IF LEN(HJ$) > 8 OR INSTR(HJ$,".") THEN _
- HJ$ = "61" : _
- GOTO 15460 ELSE _
- MAIN.MESSAGE.FILE$ = SJ$ + ":" + HJ$ : _
- MAIN.MESSAGE.BACKUP$ = MAIN.MESSAGE.FILE$ + ".BAK" : _
- MAINMSG$ = MAIN.MESSAGE.FILE$ : _
- GOTO 15340
- 15512 IF LEN(HJ$) > 8 OR INSTR(HJ$,".") THEN _
- HJ$ = "64" : _
- GOTO 15500 ELSE _
- MAIN.USER.FILE$ = SJ$ + ":" + HJ$ : _
- MAINUSR$ = MAIN.USER.FILE$ : _
- GOTO 15340
- 15520 LOCATE 24,5
- PRINT "(See the description of the COLOR statement in Basic.)";
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW A SYSOP TO SPECIFY THE FOREGROUND COLOR FOR THE LOCAL COLOR MONITOR *
- ' *****************************************************************************
- '
- 15530 LOCATE 25,5
- PRINT "Enter foreground color (a value between 0 and 15)";
- 15540 LINE INPUT;HJ$
- 15550 B1 = VAL(HJ$)
- 15560 IF B1 < 0 OR B1 > 15 THEN _
- GOTO 15530
- 15570 FG = B1
- 15580 GOTO 14200
- '
- ' *****************************************************************************
- ' * ALLOW A SYSOP TO SPECIFY THE BACKGROUND COLOR FOR THE LOCAL COLOR MONITOR *
- ' *****************************************************************************
- '
- 15590 LOCATE 25,5
- PRINT "Enter background color (a value between 0 and 7)";
- 15600 LINE INPUT;HJ$
- 15610 B1 = VAL(HJ$)
- 15620 IF B1 < 0 OR B1 > 7 THEN _
- GOTO 15590
- 15630 BG = B1
- 15640 GOTO 14200
- '
- ' *****************************************************************************
- ' * ALLOW A SYSOP TO SPECIFY THE BORDER COLOR THE LOCAL COLOR MONITOR *
- ' *****************************************************************************
- '
- 15650 LOCATE 25,5
- PRINT "Enter the border color (a value between 0 and 7)";
- 15660 LINE INPUT;HJ$
- 15670 B1 = VAL(HJ$)
- 15680 IF B1 < 0 OR B1 > 7 THEN _
- GOTO 15650
- 15690 BORDER = B1
- 15700 GOTO 14200
- '
- ' *****************************************************************************
- ' * SHOULD THE LOCAL MODEM'S SPEAKER BE ON OR OFF? *
- ' *****************************************************************************
- '
- 15710 LOCATE 24,5
- PRINT "Modem speaker default? (ON or OFF) ";
- 15720 LINE INPUT;HJ$
- 15730 IF LEN(HJ$) < 1 OR LEN(HJ$) > 3 THEN _
- GOTO 15710
- 15740 GOSUB 50654
- 15750 IF HJ$ = "ON" THEN _
- GOTO 15780
- 15760 IF HJ$ = "OFF" THEN _
- GOTO 15780
- 15770 GOTO 15710
- 15780 M14$ = HJ$
- 15790 GOTO 14200
- '
- ' *****************************************************************************
- ' * SHOULD USERS BE REMINDED OF THE MESSAGES THAT THEY LEFT? *
- ' *****************************************************************************
- '
- 15800 XX$ = "Remind users of the messages they left? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15810,15810,15800,15800
- 15810 MESSAGE.REMINDER$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * SHOULD MACHINE LANGUAGE ROUTINES BE USED TO INCREASE SPEED? *
- ' *****************************************************************************
- '
- 15820 XX$ = "Use machine language routines for speed? (YES or NO) " ' CPC14-1C
- GOSUB 50345 ' CPC14-1C
- GOSUB 22380 ' CPC14-1C
- ON AB GOTO 15830,15830,15800,15800 ' CPC14-1C
- 15830 TURBO.RBBS$ = HJ$ ' CPC14-1C
- GOTO 15340 ' CPC14-1C
- '
- ' *****************************************************************************
- ' * IS THE USER ALLOWED TO BYPASS THE SYSTEM BULLETINS? *
- ' *****************************************************************************
- '
- 15840 XX$ = "Are system bulletins to be optional? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15860,15860,15840,15840
- 15860 BULLETINS.OPTIONAL$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * SHOULD USER'S BE PREVENTED FROM DOWNLOADING FILES IN ASCII? *
- ' *****************************************************************************
- '
- 15880 XX$ = "Is non-ascii protocol required for binary files? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15900,15900,15880,15880
- 15900 REQUIRE.NON.ASCII$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * IS MICROCOM'S MNP PROTOCOL TO BE MADE AVAILABLE? *
- ' *****************************************************************************
- '
- 15911 XX$ = "Enable MICROCOM's MNP protocol? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15913,15913,15911,15911
- 15913 MNP.SUPPORT$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * SHOULD THE MAIN DIRECTORY (TEXT FILE) BE OMITTED FROM THE "NEW" COMMAND? *
- ' *****************************************************************************
- '
- 15920 XX$ = "Is " + DIRECTORY.EXTENTION$ + " omitted from the N)ew command? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15940,15940,15920,15920
- 15940 OMIT.MAIN.DIRECTORY$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * SHOULD THE UPLOAD DIRECTORY (TEXT FILE) BE OMITTED FROM THE "NEW" COMMAND?*
- ' *****************************************************************************
- '
- 15960 XX$ = "Is " + UPLOAD.DIRECTORY$ + " omitted from the N)ew command? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15980,15980,15960,15960
- 15980 OMIT.UPLOAD.DIRECTORY$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * IS "EXTENDED" LOGGING TO THE CALLERS FILE TO BE ACTIVATED? *
- ' *****************************************************************************
- '
- 15991 LOCATE 24,5
- PRINT "Do you want EXTENDED logging to the 'callers' file (YES OR NO) ";
- GOSUB 22380
- ON AB GOTO 15992,15992,15991,15991
- 15992 EXTENDED.LOGGING$ = HJ$
- GOTO 15340
- '
- ' *****************************************************************************
- ' * ARE COMMENTS TO BE RECORDED AS PRIVATE MESSAGES IN THE MESSAGE FILE? *
- ' *****************************************************************************
- '
- 15993 LOCATE 24,5
- PRINT"Do you want 'comments' recorded as private messages (YES OR NO) ";
- GOSUB 22380
- ON AB GOTO 15994,15994,15993,15993
- 15994 COMMENTS.AS.MESSAGES$ = HJ$
- GOTO 15340
- '
- ' *****************************************************************************
- ' * CAN THE USER INTERRUPT THE "WELCOME" FILE DISPLAY WHEN HE LOGS ON? *
- ' *****************************************************************************
- '
- 16000 LOCATE 24,5
- PRINT "Is system 'welcome' interruptable (YES OR NO) ";
- 16010 GOSUB 22380
- ON AB GOTO 16020,16020,16000,16000
- 16020 WELCOME.INTERRUPTABLE$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * HOW MANY SECONDS SHOULD USERS BE ALLOWED TO BE IDLE BEFORE LOGGING HIM OFF*
- ' *****************************************************************************
- '
- 16031 LOCATE 24,5
- PRINT "Seconds users can be idle before being logged off";
- 16032 LINE INPUT;HJ$
- 16033 WAIT.BEFORE.DISCONNECT = VAL(HJ$)
- 16034 IF WAIT.BEFORE.DISCONNECT < 1 OR WAIT.BEFORE.DISCONNECT > 32400 THEN _
- GOTO 16031
- 16035 GOTO 14200
- '
- ' *****************************************************************************
- ' * IDENTIFY THE TYPE OF PC THAT RBBS-PC WILL BE RUNNING ON *
- ' *****************************************************************************
- '
- 16040 CLS
- LOCATE 5,5
- PRINT "Please select the type of PC which RBBS-PC will be running on :"
- LOCATE 7,10
- PRINT "0. IBM PC, IBM XT, or IBM AT"
- LOCATE 9,10
- PRINT "1. Compaq/Plus or compatable that uses interrupt 7F"
- LOCATE 11,10
- PRINT "2. IBM PCjr
- 16045 LOCATE 13,10
- PRINT "3. Other compatable under IBM's DOS (i.e. PC-DOS)
- 16050 GOSUB 50340
- LOCATE 24,5
- PRINT "Select environment (0 to 3, CR to end)";
- LINE INPUT;X$
- IF X$ = "" THEN _
- GOTO 14200
- COMPUTER.TYPE = VAL(X$)
- GOSUB 16060
- IF COMPUTER.TYPE = 2 THEN _
- GOTO 16071
- GOTO 14200
- 16060 IF COMPUTER.TYPE < 0 OR COMPUTER.TYPE > 3 THEN _
- GOTO 16050
- 16062 IF COMPUTER.TYPE = 0 THEN _
- COMPUTER.TYPE$ = "IBM PC, XT, or AT
- 16064 IF COMPUTER.TYPE = 1 THEN _
- COMPUTER.TYPE$ = "Compaq/Plus
- 16066 IF COMPUTER.TYPE = 2 THEN _
- COMPUTER.TYPE$ = "PCjr
- 16068 IF COMPUTER.TYPE = 3 THEN _
- COMPUTER.TYPE$ = "Other under PC-DOS
- 16070 RETURN
- 16071 PCJR = 0
- XX$ = "Is an IBM PCjr Internal Modem installed? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16072,14200,16071,16071
- 16072 PCJR = 1
- GOTO 14200
- '
- ' *****************************************************************************
- ' * CAN MODEM COMMANDS BE ISSUED EVEN WHEN THE MODEM IS RINGING? *
- ' *****************************************************************************
- '
- 16121 LOCATE 24,5
- PRINT "Wait to issue modem commands between rings? (YES OR NO) ";
- 16122 GOSUB 22380
- ON AB GOTO 16123,16123,16121,16121
- 16123 COMMANDS.BETWEEN.RINGS$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * WHAT BAUD RATE SHOULDT RBBS-PC INITIALLY OPEN THE MODEM AT? *
- ' *****************************************************************************
- '
- 16124 LOCATE 25,5
- PRINT "Enter baud rate (300, 1200, 2400, 4800, 9600) to open modem at ";
- 16125 LINE INPUT;HJ$
- 16126 B1 = VAL(HJ$)
- 16127 IF B1 = 300 OR B1 = 1200 OR B1 = 2400 OR B1 = 4800 OR B1 = 9600 THEN _
- GOTO 16128 ELSE _
- GOTO 16124
- 16128 MODEM.INIT.BAUD$ = MID$(STR$(B1),2)
- 16129 GOTO 14200
- '
- ' *****************************************************************************
- ' * DISPLAY THE PARAMETERS FOR RBBS-PC'S "DOORS" *
- ' *****************************************************************************
- '
- 16130 DISPLAYED.PAGE.NUMBER = 5
- 16140 GOSUB 24800
- 16150 LOCATE 3,10
- PRINT "81. Is the 'door' subystem available? ------------ " + DOORS.AVAILABLE$
- 16160 LOCATE 4,10
- PRINT "82. The 'door' subsystem menu is named ----------- " + MENU$(5)
- 16170 LOCATE 5,10
- PRINT "83. File RBBS builds dynamically to open a 'door'- " + RCTTY.BAT$
- 16180 LOCATE 6,10
- PRINT "84. When a 'door' closes, file to re-invoke RBBS - " + RBBS.BAT$
- 16185 LOCATE 7,10
- PRINT "85. Drive to look for COMMAND.COM on ------------- " + DISK.FOR.DOS$
- 16190 GOSUB 24890
- 16200 GOSUB 22160
- 16210 IF IX THEN _
- ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,15340,16910,16230
- 16220 GOTO 16200
- 16230 GOSUB 50340
- 16240 IF HJ$ = "81" THEN _
- GOTO 16290
- 16250 IF HJ$ = "82" THEN _
- GOSUB 17330 : _
- MENU$(5) = SJ$ + ":" + HJ$ : _
- GOTO 16130
- 16260 IF HJ$ = "83" THEN _
- GOSUB 17330 : _
- RCTTY.BAT$ = SJ$ + ":" + HJ$ : _
- GOTO 16130
- 16270 IF HJ$ = "84" THEN _
- GOSUB 17330 : _
- RBBS.BAT$ = SJ$ + ":" + HJ$ : _
- GOTO 16130
- 16275 IF HJ$ = "85" THEN _
- A$ = "COMMAND.COM" : _
- GOSUB 13253 : _
- DISK.FOR.DOS$ = HJ$ + ":" : _
- GOTO 16130
- '
- ' *****************************************************************************
- ' * SHOULD "DOORS" BE AVAILABLE? *
- ' *****************************************************************************
- '
- 16280 GOTO 16190
- 16290 XX$ = "Is the 'door' subsystem available? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16310,16310,16290,16290
- 16310 DOORS.AVAILABLE$ = HJ$
- 16320 IF DOORS.AVAILABLE$ = "NO" THEN _
- GOTO 16130
- GOSUB 50340
- LOCATE 24,1
- PRINT "Will you be running RBBS-PC under MultiLink from The Software Link? ";
- 16330 GOSUB 22380
- ON AB GOTO 16340,16350,16290,16290
- 16340 DELAY! = FNTI! + 15
- GOSUB 16470
- GOTO 16130
- 16350 GOSUB 16380
- GOTO 16360
- 16360 LOCATE 23,1
- PRINT "Current Multi-Link terminal type for DOORS is ";DOORS.TERMINAL.TYPE
- 16370 GOSUB 50340
- LOCATE 24,1
- PRINT "Enter Multi-Link terminal type for DOORS ";
- GOSUB 17420
- DOORS.TERMINAL.TYPE = B1
- IF DOORS.TERMINAL.TYPE < 0 THEN _ ' CPC14-1C
- GOTO 16370
- IF DOORS.TERMINAL.TYPE > 12 THEN _
- GOTO 16370
- GOTO 16130
- 16380 CLS
- '
- ' *****************************************************************************
- ' * NOTIFY THE SYSOP OF THE CONDITIONS FOR USING RBBS-PC UNDER MULTI-LINK *
- ' *****************************************************************************
- '
- PRINT "Multi-Link is a software product of The Software Link, Inc. located"
- PRINT "at 6700 23-B Roswell Road, Atlanta, Georgia 30328. It allows IBM's"
- PRINT "DOS 1.1, 2.x, or 3.x on the IBM PC to become a multi-tasking operating"
- 16400 PRINT "system. The Capital PC User Group has no connection whatsoever with"
- 16410 PRINT "this company or it's products. In fact The Software Link has only"
- PRINT "occasionally sent updates of it's new releases to us. RBBS-PC has"
- PRINT "only been tested under Release 3.02 of MultiLink and earlier versions
- 16420 PRINT "of MultiLink. I feel strongly that IBM's DOS for the PC should be"
- PRINT "multi-tasking. Because MultiLink provides this capability for the widest
- 16430 PRINT "ranges of DOS software for the IBM PC, RBBS-PC has been enhanced"
- PRINT "to run under Multi-Link. Any questions regarding RBBS-PC under Multi-Link"
- PRINT "(other than Release 3.02 of Multi-Link) should be directed to The
- 16440 PRINT "Software Link's customer support group at (404) 998-0788."
- PRINT ""
- PRINT "I have run RBBS-PC under Multi-Link since December 1983 -- since Multi-Link"
- PRINT "release 2.04. Since Multi-Link release 2.06 I HAVE NEVER HAD A SYSTEM CRASH
- 16450 PRINT "due to Multi-Link. I think it is a quality product but a bit over-priced."
- PRINT "My opnion on Multi-Link's price reflects my prejudice that all PC software"
- PRINT "should be relatively inexpensive."
- PRINT ""
- PRINT SPC(60);"Tom Mack
- 16460 PRINT SPC(60);"May, 25, 1986"
- RETURN
- '
- ' *****************************************************************************
- ' * NOTIFY THE SYSOP OF THE CONDITIONS FOR USING RBBS-PC "DOORS" *
- ' *****************************************************************************
- '
- 16470 CLS
- PRINT " ******Warning******"
- PRINT "IBM's DOS absolutely REQUIRES any software package running"
- PRINT "as a 'door' (i.e. via a communication port) to monitor the"
- PRINT "communication port! Unless the software that you invoke via
- 16480 PRINT "the RBBS-PC 'door' mechanism monitors the communication line,"
- PRINT "your system will be vulnerable to being hung -- and worse!!!"
- PRINT "If you don't THROUGHLY understand section 11.0 of RBBS-PC's
- 16490 PRINT "documentation which discusses the pitfalls of opening RBBS-PC's"
- PRINT "'doors' to your users, DON'T use 'doors'!!!!!
- 16640 IF FNTI! < DELAY! THEN _
- GOTO 16640 ELSE _
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD USERS BE LIMITED TO A MAXIMUM AMOUNT OF TIME ON THE SYSTEM EACH DAY*
- ' *****************************************************************************
- '
- 16650 XX$ = "Limit the maximum time a users can be on each day? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16670,16670,16650,16650
- 16670 LIMIT.DAILY.TIME$ = HJ$
- GOTO 12360
- '
- ' *****************************************************************************
- ' * SHOULD USERS BE REMINDED OF THE NUMBER FILE TRANSFERS THAT THEY HAVE DONE?*
- ' *****************************************************************************
- '
- 16690 XX$ = "Remind users of # uploads and downloads? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16710,16710,16690,16690
- 16710 REMIND.FILE.TRANSFERS$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * SHOULD USERS BE REMINDED OF THEIR TERMINAL'S PROVILE? *
- ' *****************************************************************************
- '
- 16722 XX$ = "Remind users of their terminal's profile? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16724,16724,16722,16722
- 16724 REMIND.PROFILE$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SELECT "DUMB" MODEM (BUT WITH AUTO-ANSWER) MODE *
- ' *****************************************************************************
- '
- 16725 XX$ = "Are you using a non-Hayes auto-answer only modem? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16726,16726,16725,16725
- 16726 DUMB.MODEM$ = HJ$
- GOTO 14200
- '
- ' *****************************************************************************
- ' * SELECT A DEFAULT USER'S PAGE LENGTH *
- ' *****************************************************************************
- '
- 16730 LOCATE 24,5
- PRINT "Default user page length?(a value between 0 and 255)";
- 16740 LINE INPUT;HJ$
- 16750 B1 = VAL(HJ$)
- 16760 IF B1 < 0 OR B1 > 255 THEN _
- GOTO 16730
- 16770 PAGE.LENGTH = B1
- 16780 GOTO 14200
- '
- ' *****************************************************************************
- ' * SPECIFY THE MAXIMUM NUMBER OF LINES ALLOWED PER MESSAGE *
- ' *****************************************************************************
- '
- 16790 LOCATE 24,5
- PRINT "Maximum number of lines allowed per message (1->99)";
- 16800 LINE INPUT;HJ$
- 16810 B1 = VAL(HJ$)
- 16820 IF B1 < 1 OR B1 > 99 THEN _
- GOTO 16790
- 16830 MAX.MESSAGE.LINES = B1
- 16840 GOTO 14200
- '
- ' *****************************************************************************
- ' * SECURITY LEVEL TO TEMPORARILY IMPOSE ON CONFERENCE VIEWERS *
- ' *****************************************************************************
- '
- 16850 LOCATE 24,5
- PRINT "Security level temporarily imposed on conference 'viewers'";
- 16860 HJ$ = "V>iew
- 16870 GOSUB 17420
- CONFERENCE.VIEWER.SEC.LVL = B1
- 16900 GOTO 16910
- '
- ' *****************************************************************************
- ' * DISPLAY THE PARAMETERS FOR RBBS-PC'S SECURITY SYSTEM *
- ' *****************************************************************************
- '
- 16910 DISPLAYED.PAGE.NUMBER = 6
- 16920 GOSUB 24800
- 16930 LOCATE 3,9
- PRINT "101. Minimum security level to get onto RBBS ------ "STR$(MINIMUM.LOGON.SECURITY)
- 16940 LOCATE 4,9
- PRINT "102. Default security level for new callers ------- "STR$(DEFAULT.SECURITY.LEVEL)
- 16950 LOCATE 5,9
- PRINT "103. Security level for SYSOP --------------------- "STR$(SYSOP.SECURITY.LEVEL)
- 16960 LOCATE 6,9
- PRINT "104. Files with download security are listed in --- " + FILESEC.FILE$
- 16970 LOCATE 7,9
- PRINT "105. Minimum security level to see SYSOP's menu --- "STR$(SYSOP.MENU.SECURITY.LEVEL)
- 16980 LOCATE 8,9
- PRINT "106. Minimum security level to use RBBS-PC 'doors' " + STR$(DOORS.SECURITY.LEVEL)
- 16990 LOCATE 9,9
- PRINT "107. Max # security violations before disconnect -- "STR$(MAXIMUM.VIOLATIONS)
- 17000 M22$ = STR$(SF)
- IX = SYSOP.FUNCTION(1)
- FOR I = 2 TO 7
- IF IX <> SYSOP.FUNCTION(I) THEN _
- M22$ = "(Variable)" : _
- GOTO 17010 ELSE _
- NEXT
- 17010 LOCATE 10,9
- PRINT "108. Security level for SYSOP functions ----------- "M22$
- 17020 M23$ = STR$(MM)
- IX = MAIN.FUNCTION(1)
- FOR I = 2 TO 21
- IF IX<>MAIN.FUNCTION(I) THEN _
- M23$ = "(Variable)" : _
- GOTO 17030 ELSE _
- NEXT
- 17030 LOCATE 11,9
- PRINT "109. Security level for main menu functions ------- "M23$
- 17040 M24$ = STR$(FC)
- IX = FILES.FUNCTION(1)
- FOR I = 2 TO 10
- IF IX<>FILES.FUNCTION(I) THEN _
- M24$ = "(Variable)" : _
- GOTO 17050 ELSE _
- NEXT
- 17050 LOCATE 12,9
- PRINT "110. Security level for file menu functions ------- "M24$
- 17060 M25$ = STR$(UE)
- IX = UTILITY.FUNCTION(1)
- FOR I = 2 TO 16
- IF IX<>UTILITY.FUNCTION(I) THEN _
- M25$ = "(Variable)" : _
- GOTO 17070 ELSE _
- NEXT
- 17070 LOCATE 13,9
- PRINT "111. Security level for utilities menu functions -- "M25$
- 17080 LOCATE 14,9
- PRINT "112. File with privileged group passwords is named- "PASSWORD.FILE$
- 17090 LOCATE 15,9
- PRINT "113. Max # of password changes in a session ------- "STR$(MAXIMUM.PASSWORD.CHANGES)
- 17100 LOCATE 16,9
- PRINT "114. Min. security level for temp. password changes "STR$(MINIMUM.SECURITY.FOR.TEMP.PASSWORD)
- 17110 LOCATE 17,9
- PRINT "115. Min. security level to overwrite on uploads -- "STR$(OVERWRITE.SECURITY.LEVEL)
- 17115 LOCATE 18,9
- PRINT "116. Security level of conference 'viewers' ------- "STR$(CONFERENCE.VIEWER.SEC.LVL)
- 17116 LOCATE 19,9
- PRINT "117. User's security exempted from 'packing' ------ "STR$(SEC.LVL.EXEMPT.FRM.PURGING)
- 17120 GOSUB 24890
- 17130 GOSUB 22160
- 17140 IF IX THEN _
- ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,16130,21550,17160
- 17150 GOTO 17130
- 17160 GOSUB 50340
- 17170 IF HJ$ = "101" THEN _
- GOSUB 18730 : _
- GOSUB 17410 : _
- MINIMUM.LOGON.SECURITY = B1 : _
- GOTO 16910
- 17180 IF HJ$ = "102" THEN _
- GOSUB 18730 : _
- GOSUB 17410 : _
- DEFAULT.SECURITY.LEVEL = B1 : _
- GOTO 16910
- 17190 IF HJ$ = "103" THEN _
- GOSUB 18730 : _
- GOSUB 17410 : _
- SYSOP.SECURITY.LEVEL = B1 : _
- GOTO 16910
- 17200 IF HJ$ = "104" THEN _
- GOSUB 17330 : _
- FILESEC.FILE$ = SJ$ + ":" + HJ$ : _
- GOTO 16910
- 17210 IF HJ$ = "105" THEN _
- GOSUB 18730 : _
- GOSUB 17410 : _
- SYSOP.MENU.SECURITY.LEVEL = B1 : _
- GOTO 16910
- 17220 IF HJ$ = "106" THEN _
- GOSUB 18730 : _
- GOSUB 17410 : _
- DOORS.SECURITY.LEVEL = B1 : _
- GOTO 16910
- 17230 IF HJ$ = "107" THEN _
- GOSUB 18730 : _
- GOSUB 17410 : _
- MAXIMUM.VIOLATIONS = B1 : _
- GOTO 16910
- 17240 IF HJ$ = "108" THEN _
- GOTO 17460
- 17250 IF HJ$ = "109" THEN _
- GOSUB 17460 : _
- MM = B1 : _
- GOTO 16910
- 17260 IF HJ$ = "110" THEN _
- GOSUB 17460 : _
- FC = B1 : _
- GOTO 16910
- 17270 IF HJ$ = "111" THEN _
- GOSUB 17460 : _
- UE = B1 : _
- GOTO 16910
- 17280 IF HJ$ = "112" THEN _
- GOSUB 17330 :_
- PASSWORD.FILE$ = SJ$ + ":" + HJ$ :_
- GOTO 16910
- 17290 IF HJ$ = "113" THEN _
- GOSUB 50340 : _
- LOCATE 24,1 : _
- PRINT "Maximum number of password changes is? (0 or more)"; : _
- GOSUB 17420 : _
- MAXIMUM.PASSWORD.CHANGES = B1 : _
- IF B1 < 0 THEN _
- GOTO 17290 ELSE _
- GOTO 16910
- 17300 IF HJ$ = "114" THEN _
- GOSUB 18730 : _
- GOSUB 17410 : _
- MINIMUM.SECURITY.FOR.TEMP.PASSWORD = B1 : _
- GOTO 16910
- 17310 IF HJ$ = "115" THEN _
- HJ$ = "overwriting files on upload" : _
- GOSUB 17410 : _
- OVERWRITE.SECURITY.LEVEL = B1 : _
- GOTO 16910
- 17315 IF HJ$ = "116" THEN _
- GOTO 16850
- 17316 IF HJ$ = "117" THEN _
- GOSUB 18730 : _
- GOSUB 17410 : _
- SEC.LVL.EXEMPT.FRM.PURGING = B1 : _
- GOTO 16910
- 17320 GOTO 17120
- '
- ' *****************************************************************************
- ' * STANDARD ROUTINE TO SIMPLY SPECIFY A DRIVE LETTER FOR ANY OPTION *
- ' *****************************************************************************
- '
- 17330 X$ = HJ$
- LOCATE 24,5
- PRINT "Specify drive (A->" + M$ + ") where file for option " + X$ + " will be located. ";
- 17340 LINE INPUT;HJ$
- 17350 IF LEN(HJ$) <> 1 THEN _
- HJ$ = X$ : _
- GOTO 17330
- 17360 GOSUB 50654
- 17370 IF HJ$<"A" OR HJ$>M$ THEN _
- HJ$ = X$ : _
- GOTO 17330
- 17380 SJ$ = HJ$
- 17390 GOSUB 14980
- 17400 RETURN
- '
- ' *****************************************************************************
- ' * STANDARD ROUTINE TO REQUEST A SECURITY LEVEL FOR A SPECIFIC COMMAND *
- ' *****************************************************************************
- '
- 17410 GOSUB 50340
- LOCATE 24,1
- PRINT "Security level for " + HJ$ + " is? ";
- 17420 LINE INPUT;HK$
- 17430 B1 = VAL(HK$)
- 17440 IF B1 = 0 AND HK$ <> "0" THEN _
- GOTO 17410
- 17450 RETURN
- '
- ' *****************************************************************************
- ' * MENU COMMAND PROCESSING *
- ' *****************************************************************************
- '
- 17460 IF HJ$ = "108" THEN _
- CO$ = "SYSOP" : _
- GOTO 18480
- 17470 IF HJ$ = "109" THEN _
- CO$ = "Main Menu" : _
- GOTO 18100
- 17480 IF HJ$ = "110" THEN _
- CO$ = "File System" : _
- GOTO 17820
- 17490 IF HJ$ = "111" THEN _
- CO$ = "Utilities
- '
- ' *****************************************************************************
- ' * STANDARD ROUTINE TO REQUEST A SECURITY LEVEL FOR UTILITY SUBSYSTEM COMANDS*
- ' *****************************************************************************
- '
- 17500 LOCATE 24,1
- PRINT "Set ALL the " + CO$ + " commands to the SAME security level? (YES or NO)";
- 17510 LINE INPUT;X$
- 17520 IF LEN(X$) < 1 OR LEN(X$) > 3 THEN _
- GOTO 17500
- 17530 SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- 17540 IF X$ = "YES" OR X$ = "Y" THEN _
- HJ$ = "all " + CO$ + " commands" :_
- GOSUB 17410 : _
- FOR I = 1 TO 16 : _
- UTILITY.FUNCTION(I) = B1 : _
- NEXT : _
- UE = B1 : _
- GOTO 16910
- 17550 IF X$ = "NO" OR X$ = "N" THEN _
- GOTO 17570
- 17560 GOTO 17500
- 17570 GOSUB 25180
- LOCATE 5,10
- PRINT "B)aud rate " + STR$(UTILITY.FUNCTION(1))
- LOCATE 6,10
- PRINT "C)ase change " + STR$(UTILITY.FUNCTION(2))
- LOCATE 7,10
- PRINT "F)ile transfer protocol " + STR$(UTILITY.FUNCTION(3))
- 17610 LOCATE 8,10
- PRINT "G)raphics " + STR$(UTILITY.FUNCTION(4))
- LOCATE 9,10
- PRINT "H)elp " + STR$(UTILITY.FUNCTION(5))
- LOCATE 10,10
- PRINT "L)ine feeds " + STR$(UTILITY.FUNCTION(6))
- 17640 LOCATE 11,10
- PRINT "M)sg margin " + STR$(UTILITY.FUNCTION(7))
- LOCATE 12,10
- PRINT "N)ulls " + STR$(UTILITY.FUNCTION(8))
- LOCATE 13,10
- PRINT "P)ass word " + STR$(UTILITY.FUNCTION(9))
- 17670 LOCATE 14,10
- PRINT "Q)uit to main menu " + STR$(UTILITY.FUNCTION(10))
- LOCATE 15,10
- PRINT "R)eview Default " + STR$(UTILITY.FUNCTION(11))
- LOCATE 16,10
- PRINT "S)tatistics " + STR$(UTILITY.FUNCTION(12))
- 17690 LOCATE 17,10
- PRINT "T)ime " + STR$(UTILITY.FUNCTION(13))
- LOCATE 18,10
- PRINT "U)serlog " + STR$(UTILITY.FUNCTION(14))
- LOCATE 19,10
- PRINT "X)Expert on/off " + STR$(UTILITY.FUNCTION(15))
- 17710 LOCATE 20,10
- PRINT "!)Prompt sound " + STR$(UTILITY.FUNCTION(16))
- 17720 GOSUB 25210
- SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- FF = INSTR("BCFGHLMNPQRSTUX!",X$)
- IF FF = 0 THEN _
- GOTO 17720
- 17790 HJ$ = "all " + CO$ + " '" + X$ + "' commands"
- GOSUB 17410
- 17800 UTILITY.FUNCTION(FF) = B1
- 17810 GOTO 17570
- '
- ' *****************************************************************************
- ' * STANDARD ROUTINE TO REQUEST A SECURITY LEVEL FOR FILES SUBSYSTEM COMANDS *
- ' *****************************************************************************
- '
- 17820 LOCATE 24,1
- PRINT "Set ALL the " + CO$ + " commands to the SAME security level? (YES or NO)";
- 17830 LINE INPUT;X$
- 17840 IF LEN(X$) < 1 OR LEN(X$) > 3 THEN _
- GOTO 17820
- 17850 SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- 17860 IF X$ = "YES" OR X$ = "Y" THEN _
- HJ$ = "all " + CO$ + " commands" : _
- GOSUB 17410 : _
- FOR I = 1 TO 10 : _
- FILES.FUNCTION(I) = B1 : _
- NEXT : _
- FC = B1 : _
- GOTO 16910
- 17870 IF X$ = "NO" OR X$ = "N" THEN _
- GOTO 17890
- 17880 GOTO 17820
- 17890 GOSUB 25180
- LOCATE 5,10
- PRINT "D)ownload a file " + STR$(FILES.FUNCTION(1))
- LOCATE 6,10
- PRINT "G)oodbye " + STR$(FILES.FUNCTION(2))
- LOCATE 7,10
- PRINT "H)elp " + STR$(FILES.FUNCTION(3))
- 17950 LOCATE 8,10
- PRINT "L)ist files " + STR$(FILES.FUNCTION(4))
- LOCATE 9,10
- PRINT "N)ew files " + STR$(FILES.FUNCTION(5))
- LOCATE 10,10
- PRINT "Q)uit to main menu " + STR$(FILES.FUNCTION(6))
- 17975 LOCATE 11,10
- PRINT "S)earch directories for string " + STR$(FILES.FUNCTION(7))
- LOCATE 12,10
- PRINT "U)pload a file " + STR$(FILES.FUNCTION(8))
- LOCATE 13,10
- PRINT "X)Expert on/off " + STR$(FILES.FUNCTION(9))
- 17990 LOCATE 14,10
- PRINT "?) Xfer info " + STR$(FILES.FUNCTION(10))
- 18000 GOSUB 25210
- SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- FF = INSTR("DGHLNQSUX?",X$)
- IF FF = 0 THEN _
- GOTO 18000
- 18070 HJ$ = "all " + CO$ + " '" + X$ + "' commands"
- GOSUB 17410
- 18080 FILES.FUNCTION(FF) = B1
- 18090 GOTO 17890
- '
- ' *****************************************************************************
- ' * STANDARD ROUTINE TO REQUEST A SECURITY LEVEL FOR MESSAGE SUBSYSTEM COMANDS*
- ' *****************************************************************************
- '
- 18100 LOCATE 24,1
- PRINT "Set ALL the " + CO$ + " commands to the SAME security level? (YES or NO)";
- 18110 LINE INPUT;X$
- 18120 IF LEN(X$) < 1 OR LEN(X$) > 3 THEN _
- GOTO 18100
- 18130 SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- 18140 IF X$ = "YES" OR X$ = "Y" THEN _
- HJ$ = "all " + CO$ + " commands" : _
- GOSUB 17410 : _
- FOR I = 1 TO 21 : _
- MAIN.FUNCTION(I) = B1 : _
- NEXT : _
- MM = B1 : _
- GOTO 16910
- 18150 IF X$ = "NO" OR X$ = "N" THEN _
- GOTO 18170
- 18160 GOTO 18100
- 18170 GOSUB 25180
- LOCATE 3,8
- PRINT "Command Security Level"
- LOCATE 3,37
- PRINT " Command Security Level"
- LOCATE 5,5
- PRINT "B)ulletins " + STR$(MAIN.FUNCTION(1))
- LOCATE 6,5
- PRINT "C)omments " + STR$(MAIN.FUNCTION(2))
- 18220 LOCATE 7,5
- PRINT "D)oor subystem " + STR$(MAIN.FUNCTION(3))
- LOCATE 8,5
- PRINT "E)nter message " + STR$(MAIN.FUNCTION(4))
- LOCATE 9,5
- PRINT "F)iles system " + STR$(MAIN.FUNCTION(5))
- LOCATE 10,5
- PRINT "G)oodbye " + STR$(MAIN.FUNCTION(6))
- 18260 LOCATE 11,5
- PRINT "H)elp " + STR$(MAIN.FUNCTION(7))
- LOCATE 12,5
- PRINT "I)nitial welcome " + STR$(MAIN.FUNCTION(8))
- LOCATE 13,5
- PRINT "J)oin a conference " + STR$(MAIN.FUNCTION(9))
- LOCATE 14,5
- PRINT "K)ill messages " + STR$(MAIN.FUNCTION(10))
- 18290 LOCATE 15,5
- PRINT "L)ines per page " + STR$(MAIN.FUNCTION(11))
- LOCATE 5,40
- PRINT "O)perator " + STR$(MAIN.FUNCTION(12))
- LOCATE 6,40
- PRINT "P)ersonal mail " + STR$(MAIN.FUNCTION(13))
- LOCATE 7,40
- PRINT "Q)uick scan " + STR$(MAIN.FUNCTION(14))
- 18330 LOCATE 8,40
- PRINT "R)ead messages " + STR$(MAIN.FUNCTION(15))
- LOCATE 9,40
- PRINT "S)can messages " + STR$(MAIN.FUNCTION(16))
- LOCATE 10,40
- PRINT "U)tilities (more) " + STR$(MAIN.FUNCTION(17))
- LOCATE 11,40
- PRINT "V)iew a conference " + STR$(MAIN.FUNCTION(18))
- 18357 LOCATE 12,40
- PRINT "W)ho's on other nodes " + STR$(MAIN.FUNCTION(19))
- LOCATE 13,40
- PRINT "X)Expert on/off " + STR$(MAIN.FUNCTION(20))
- LOCATE 14,40
- PRINT "?)Functions " + STR$(MAIN.FUNCTION(21))
- 18380 GOSUB 25210
- SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- FF = INSTR("BCDEFGHIJKLOPQRSUVWX?",X$)
- IF FF = 0 THEN _
- GOTO 18380
- 18450 HJ$ = "all " + CO$ + " '" + X$ + "' commands"
- GOSUB 17410
- 18460 MAIN.FUNCTION(FF) = B1
- 18470 GOTO 18170
- '
- ' *****************************************************************************
- ' * STANDARD ROUTINE TO REQUEST SECURITY LEVELS FOR UTILIITY SUBSYSTEM COMANDS*
- ' *****************************************************************************
- '
- 18480 LOCATE 24,1
- PRINT "Set ALL the " + CO$ + " commands to the SAME security level? (YES or NO)";
- 18490 LINE INPUT;X$
- 18500 IF LEN(X$) < 1 OR LEN(X$) > 3 THEN _
- GOTO 18480
- 18510 SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- 18520 IF X$ = "YES" OR X$ = "Y" THEN _
- HJ$ = "all " + CO$ + " commands" : _
- GOSUB 17410 : _
- FOR I = 1 TO 7 : _
- SYSOP.FUNCTION(I) = B1 : _
- NEXT : _
- SF = B1 : _
- GOTO 16910
- 18530 IF X$ = "NO" OR X$ = "N" THEN _
- GOTO 18550
- 18540 GOTO 18480
- 18550 GOSUB 25180
- LOCATE 5,10
- PRINT " 1 List comments " + STR$(SYSOP.FUNCTION(1))
- LOCATE 6,10
- PRINT " 2 List callers log " + STR$(SYSOP.FUNCTION(2))
- LOCATE 7,10
- PRINT " 3 Recover a Msg " + STR$(SYSOP.FUNCTION(3))
- 18610 LOCATE 8,10
- PRINT " 4 Erase comments " + STR$(SYSOP.FUNCTION(4))
- LOCATE 9,10
- PRINT " 5 Users maintenance " + STR$(SYSOP.FUNCTION(5))
- LOCATE 10,10
- PRINT " 6 Toggle page bell " + STR$(SYSOP.FUNCTION(6))
- 18650 LOCATE 11,10
- PRINT " 7 Exit to DOS " + STR$(SYSOP.FUNCTION(7))
- 18670 GOSUB 25210
- IF VAL(X$) < 1 OR VAL(X$) > 7 THEN _
- GOTO 18670
- 18700 HJ$ = "all " + CO$ + " '" + X$ + "' commands"
- GOSUB 17410
- 18710 SYSOP.FUNCTION(VAL(X$)) = B1
- 18720 GOTO 18550
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO DISPLAY OPTION *
- ' *****************************************************************************
- '
- 18730 HJ$ = "option " + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * CONVERT DISPLAYABLE OPTIONS INTO RBBS-PC.DEF PARAMETER VARIABLES *
- ' *****************************************************************************
- '
- 18740 GOSUB 50340
- IF EXPERT.USER$ = "NOVICE" THEN _
- EXPERT.USER = 0
- 18750 IF EXPERT.USER$ = "EXPERT" THEN _
- EXPERT.USER = -1
- 18760 DOWNLOAD.DRIVES$ = DRIVES.FOR.DOWNLOADS$ + DRIVE.FOR.UPLOADS$
- 18770 PROMPT.BELL = -1
- IF PROMPT.BELL$ = "OFF" THEN _
- PROMPT.BELL = 0
- 18772 PAGING.PRINTER.SUPPORT$ = ". "
- IF M11$ = "YES" THEN _
- PAGING.PRINTER.SUPPORT$ = ". " + CHR$(7)
- 18774 CODE.TYPE = FALSE
- IF CODE.TYPE$ = "COMPILED" THEN _
- CODE.TYPE = TRUE
- 18776 MID$(MODEM.INIT.COMMAND$,4,1) = "1"
- IF M14$ = "OFF" THEN _
- MID$(MODEM.INIT.COMMAND$,4,1) = "0"
- 18778 BULLETINS.OPTIONAL = FALSE
- IF BULLETINS.OPTIONAL$ = "YES" THEN _
- BULLETINS.OPTIONAL = TRUE
- 18780 MESSAGE.REMINDER = FALSE
- IF MESSAGE.REMINDER$ = "YES" THEN _
- MESSAGE.REMINDER = TRUE
- 18782 REQUIRE.NON.ASCII = FALSE
- IF REQUIRE.NON.ASCII$ = "YES" THEN _
- REQUIRE.NON.ASCII = TRUE
- 18784 WELCOME.INTERRUPTABLE = FALSE
- IF WELCOME.INTERRUPTABLE$ = "YES" THEN _
- WELCOME.INTERRUPTABLE = TRUE
- 18786 REMIND.FILE.TRANSFERS = FALSE
- IF REMIND.FILE.TRANSFERS$ = "YES" THEN _
- REMIND.FILE.TRANSFERS = TRUE
- 18788 REMIND.PROFILE = FALSE
- IF REMIND.PROFILE$ = "YES" THEN _
- REMIND.PROFILE = TRUE
- 18790 DOORS.AVAILABLE = FALSE
- IF DOORS.AVAILABLE$ = "YES" THEN _
- DOORS.AVAILABLE = TRUE
- 18792 LIMIT.DAILY.TIME = FALSE
- IF LIMIT.DAILY.TIME$ = "YES" THEN _
- LIMIT.DAILY.TIME = TRUE
- 18794 COMMANDS.BETWEEN.RINGS = FALSE
- IF COMMANDS.BETWEEN.RINGS$ = "YES" THEN _
- COMMANDS.BETWEEN.RINGS = TRUE
- 18796 MNP.SUPPORT = FALSE
- IF MNP.SUPPORT$ = "YES" THEN _
- MNP.SUPPORT = TRUE
- 18799 WILL.SUBDIRS.B.USED = FALSE
- IF WILL.SUBDIRS.B.USED$ = "YES" THEN _
- WILL.SUBDIRS.B.USED = TRUE
- 18801 UPLOAD.TO.SUBDIR = FALSE
- IF UPLOAD.TO.SUBDIR$ = "YES" THEN _
- UPLOAD.TO.SUBDIR = TRUE
- 18803 DOWNLOAD.TO.SUBDIR = FALSE
- IF DOWNLOAD.TO.SUBDIR$ = "YES" THEN _
- DOWNLOAD.TO.SUBDIR = TRUE
- 18805 RESTRICT.BAUD = FALSE
- IF RESTRICT.BAUD$ = "YES" THEN _
- RESTRICT.BAUD = TRUE
- 18806 IF RESTRICT.BAUD$="YES=Registered users" THEN _
- RESTRICT.BAUD=-2
- 18807 USE.COLOR = FALSE
- IF USE.COLOR$ = "YES" THEN _
- USE.COLOR = TRUE
- 18809 DISKFULL.GO.OFFLINE = FALSE
- IF DISKFULL.GO.OFFLINE$ = "YES" THEN _
- DISKFULL.GO.OFFLINE = TRUE
- 18811 EXTENDED.LOGGING = FALSE
- IF EXTENDED.LOGGING$ = "YES" THEN _
- EXTENDED.LOGGING = TRUE
- 18813 DUMB.MODEM = FALSE
- IF DUMB.MODEM$ = "YES" THEN _
- DUMB.MODEM = TRUE
- 18814 COMMENTS.AS.MESSAGES=FALSE
- IF COMMENTS.AS.MESSAGES$="YES" THEN _
- COMMENTS.AS.MESSAGES=TRUE
- TURBO.RBBS = FALSE ' CPC14-1C
- IF TURBO.RBBS$ = "YES" THEN _ ' CPC14-1C
- TURBO.RBBS = TRUE ' CPC14-1C
- 18989 IF MAIN.MESSAGE.FILE$ <> MAINMSG$ THEN _
- MAIN.MESSAGE.FILE$ = MAINMSG$
- 18990 IF MAIN.USER.FILE$ <> MAINUSR$ THEN _
- MAIN.USER.FILE$ = MAINUSR$
- 18998 IF F THEN _
- GOSUB 30040
- 18999 OPEN "O",#1,CONFIG.FILENAME$
- 19010 IF INSTR(MO$,":") < 1 THEN _
- MO$ = MO$ + ":
- 19020 IF INSTR(SJ$,":") < 1 THEN _
- SJ$ = SJ$ + ":
- 19030 IF INSTR(TB$,":") < 1 THEN _
- TB$ = TB$ + ":
- 19031 IF INSTR(DRIVE.FOR.BULLETINS$,":") < 1 THEN _
- DRIVE.FOR.BULLETINS$ = DRIVE.FOR.BULLETINS$ + ":
- 19032 T$ = DIRECTORY.EXTENTION$
- IF INSTR(DIRECTORY.EXTENTION$,".") THEN _
- T$ = MID$(DIRECTORY.EXTENTION$,INSTR(DIRECTORY.EXTENTION$,".") + 1,LEN(DIRECTORY.EXTENTION$))
- 19033 S$ = UPLOAD.DIRECTORY$
- IF INSTR(UPLOAD.DIRECTORY$,".") THEN _
- S$ = MID$(UPLOAD.DIRECTORY$,1,INSTR(UPLOAD.DIRECTORY$,".")-1)
- 19034 DIRECTORY.EXTENTION$ = T$
- 19035 UPLOAD.DIRECTORY$ = S$
- 19036 IF DOWNLOAD.TO.SUBDIR$ = "NO" THEN _
- DNLD.SUB = 0 : _
- FOR I = 1 TO 99 : _
- DNLD$(I) = "" : _
- NEXT
- 19037 IF UPLOAD.TO.SUBDIR$ = "NO" THEN _
- UPLOAD.SUBDIR$ = DRIVE.FOR.UPLOADS$ + ":"
- 19038 IF UPLOAD.TO.SUBDIR$ = "YES" AND UPLOAD.SUBDIR$<>"" THEN _
- DRIVE.FOR.UPLOADS$ = UPLOAD.SUBDIR$
- 19039 IF REQUIRED.RINGS = 0 AND _ ' CPC14-1D
- MID$(MODEM.INIT.COMMAND$,INSTR(MODEM.INIT.COMMAND$,"S0")+3,5)<>"1V1X1" THEN _
- MID$(MODEM.INIT.COMMAND$,INSTR(MODEM.INIT.COMMAND$,"S0")+3,5)="1V1X1" : _ 'CPC14-1D
- MID$(MODEM.INIT.COMMAND$,6,1)="0" ' CPC14-1D
- IF REQUIRED.RINGS > 0 AND _
- MID$(MODEM.INIT.COMMAND$,INSTR(MODEM.INIT.COMMAND$,"S0")+3,3)="0 " THEN _
- MID$(MODEM.INIT.COMMAND$,INSTR(MODEM.INIT.COMMAND$,"S0")+3,3)="254"
- '
- ' *****************************************************************************
- ' * WRITE OUT THE "RBBS-PC.DEF" FILE WITH THE SYSOP'S SPECIFIED CONFIGURATION *
- ' *****************************************************************************
- '
- 19040 WRITE #1,DOWNLOAD.DRIVES$, _
- SYSOP.PASSWORD.1$, _
- SYSOP.PASSWORD.2$, _
- SYSOP.FIRST.NAME$, _
- SYSOP.LAST.NAME$, _
- REQUIRED.RINGS, _
- START.OFFICE.HOURS, _
- END.OFFICE.HOURS, _
- MINUTES.PER.SESSION!, _
- MAX.ALLOWED.MSGS.FRM.DEF, _
- ACT.MNTHS.B4.DELETING, _
- UPLOAD.DIRECTORY$,_
- EXPERT.USER, _
- ACTIVE.BULLETINS, _
- PROMPT.BELL, _
- PCJR, _
- CODE.TYPE, _
- MENU$(1), _
- MENU$(2), _
- MENU$(3), _
- MENU$(4), _
- MENU$(5), _
- CONFERENCE.MENU$, _
- CONFERENCE.VIEWER.SEC.LVL, _
- WELCOME.INTERRUPTABLE, _
- REMIND.FILE.TRANSFERS, _
- PAGE.LENGTH, _
- MAX.MESSAGE.LINES, _
- DOORS.AVAILABLE, _
- MO$
- 19050 IF INSTR(BULLETIN.MENU$,":") < 1 THEN _
- BULLETIN.MENU$ = DRIVE.FOR.BULLETINS$ + BULLETIN.MENU$
- 19060 IF INSTR(BULLETIN.PREFIX$,":") < 1 THEN _
- BULLETIN.PREFIX$ = DRIVE.FOR.BULLETINS$ + BULLETIN.PREFIX$
- 19070 FOR I = 1 TO 9
- 19080 HELP$(I) = DRIVE.FOR.HELP.FILES$ + _
- ":" + _
- HELP.FILE.PREFIX$ + _
- RIGHT$(STR$(I),1)
- 19090 NEXT
- 19100 MAIN.FUNCTION(6) = MINIMUM.LOGON.SECURITY
- FILES.FUNCTION(2) = MINIMUM.LOGON.SECURITY
- 19110 WRITE #1,MAIN.MESSAGE.FILE$, _
- MAIN.MESSAGE.BACKUP$, _
- CALLERS.FILE$, _
- COMMENTS.FILE$, _
- MAIN.USER.FILE$, _
- WELCOME.FILE$, _
- NEWUSER.FILE$, _
- DIRECTORY.EXTENTION$, _
- COM.PORT$, _
- BULLETINS.OPTIONAL, _
- MODEM.INIT.COMMAND$, _
- TB$, _
- DOS.VERSION, _
- FG, _
- BG, _
- BORDER, _
- RBBS.BAT$, _
- RCTTY.BAT$
- 19120 WRITE #1,OMIT.MAIN.DIRECTORY$, _
- OMIT.UPLOAD.DIRECTORY$, _
- HELP$(1), _
- HELP$(2), _
- HELP$(3), _
- HELP$(4), _
- HELP$(5), _
- HELP$(6), _
- HELP$(7), _
- HELP$(8), _
- HELP$(9), _
- BULLETIN.MENU$, _
- BULLETIN.PREFIX$, _
- DRIVE.FOR.BULLETINS$, _
- MESSAGE.REMINDER, _
- REQUIRE.NON.ASCII, _
- DOORS.SECURITY.LEVEL, _
- MAXIUM.NUMBER.OF.NODES, _
- NETWORK.TYPE, _
- RECYCLE.TO.DOS, _
- MAX.USR.FILE.SIZE.FRM.DEF, _
- MAX.MSG.FILE.SIZE.FRM.DEF!, _
- TRASHCAN.FILE$
- 19130 WRITE #1,MINIMUM.LOGON.SECURITY, _
- DEFAULT.SECURITY.LEVEL, _
- SYSOP.SECURITY.LEVEL, _
- FILESEC.FILE$, _
- SYSOP.MENU.SECURITY.LEVEL, _
- LOCAL.PASSWORD$, _
- MAXIMUM.VIOLATIONS, _
- SYSOP.FUNCTION(1), _
- SYSOP.FUNCTION(2), _
- SYSOP.FUNCTION(3), _
- SYSOP.FUNCTION(4), _
- SYSOP.FUNCTION(5), _
- SYSOP.FUNCTION(6), _
- SYSOP.FUNCTION(7), _
- PASSWORD.FILE$, _
- MAXIMUM.PASSWORD.CHANGES, _
- MINIMUM.SECURITY.FOR.TEMP.PASSWORD, _
- OVERWRITE.SECURITY.LEVEL, _
- DOORS.TERMINAL.TYPE, _
- LIMIT.DAILY.TIME
- 19140 WRITE #1,MAIN.FUNCTION(1), _
- MAIN.FUNCTION(2), _
- MAIN.FUNCTION(3), _
- MAIN.FUNCTION(4), _
- MAIN.FUNCTION(5), _
- MAIN.FUNCTION(6), _
- MAIN.FUNCTION(7), _
- MAIN.FUNCTION(8), _
- MAIN.FUNCTION(9), _
- MAIN.FUNCTION(10), _
- MAIN.FUNCTION(11), _
- MAIN.FUNCTION(12), _
- MAIN.FUNCTION(13), _
- MAIN.FUNCTION(14), _
- MAIN.FUNCTION(15), _
- MAIN.FUNCTION(16), _
- MAIN.FUNCTION(17), _
- MAIN.FUNCTION(18), _
- MAIN.FUNCTION(19), _
- MAIN.FUNCTION(20), _
- MAIN.FUNCTION(21), _
- DEFAULT.MACHINE.TYPE$, _
- WAIT.BEFORE.DISCONNECT
- 19150 WRITE #1,FILES.FUNCTION(1), _
- FILES.FUNCTION(2), _
- FILES.FUNCTION(3), _
- FILES.FUNCTION(4), _
- FILES.FUNCTION(5), _
- FILES.FUNCTION(6), _
- FILES.FUNCTION(7), _
- FILES.FUNCTION(8), _
- FILES.FUNCTION(9), _
- FILES.FUNCTION(10), _
- UTILITY.FUNCTION(1), _
- UTILITY.FUNCTION(2), _
- UTILITY.FUNCTION(3), _
- UTILITY.FUNCTION(4), _
- UTILITY.FUNCTION(5), _
- UTILITY.FUNCTION(6), _
- UTILITY.FUNCTION(7), _
- UTILITY.FUNCTION(8), _
- UTILITY.FUNCTION(9), _
- UTILITY.FUNCTION(10), _
- UTILITY.FUNCTION(11), _
- UTILITY.FUNCTION(12), _
- UTILITY.FUNCTION(13), _
- UTILITY.FUNCTION(14), _
- UTILITY.FUNCTION(15), _
- UTILITY.FUNCTION(16), _
- UPLOAD.TIME.FACTOR!, _
- COMPUTER.TYPE, _
- REMIND.PROFILE, _
- RBBS.NAME$, _
- COMMANDS.BETWEEN.RINGS, _
- MNP.SUPPORT, _
- PAGING.PRINTER.SUPPORT$, _
- MODEM.INIT.BAUD$
- 19159 IF COM.PORT$ = "COM1" THEN _
- LSB = &H3F8 : _
- MSB = &H3F9 : _
- LINE.CONTROL.REGISTER = &H3FB : _
- MODEM.CONTROL.REGISTER = &H3FC : _
- LINE.STATUS.REGISTER = &H3FD : _
- MODEM.STATUS.REGISTER = &H3FE
- 19160 IF COM.PORT$ = "COM2" OR PCJR = 1 THEN _
- LSB = &H2F8 : _
- MSB = &H2F9 : _
- LINE.CONTROL.REGISTER = &H2FB : _
- MODEM.CONTROL.REGISTER = &H2FC : _
- LINE.STATUS.REGISTER = &H2FD : _
- MODEM.STATUS.REGISTER = &H2FE
- 19161 WRITE #1,SYSOP.FUNCTION.KEY1$, _
- SYSOP.FUNCTION.KEY2$, _
- SYSOP.FUNCTION.KEY3$, _
- SYSOP.FUNCTION.KEY4$, _
- SYSOP.FUNCTION.KEY5$, _
- SYSOP.FUNCTION.KEY6$, _
- SYSOP.FUNCTION.KEY7$, _
- SYSOP.FUNCTION.KEY8$, _
- SYSOP.FUNCTION.KEY9$, _
- SYSOP.FUNCTION.KEY10$, _
- SYSOP.FUNCTION.KEY11$, _
- SYSOP.FUNCTION.KEY12$, _
- SEC.LVL.EXEMPT.FRM.PURGING, _ ' CPC14-1C
- MODEM.INIT.WAIT.TIME, _ ' CPC14-1C
- MODEM.COMMAND.DELAY.TIME, _ ' CPC14-1C
- TURBO.RBBS ' CPC14-1C
- 19162 WRITE #1,DNLD.SUB, _
- WILL.SUBDIRS.B.USED, _
- UPLOAD.TO.SUBDIR, _
- DOWNLOAD.TO.SUBDIR, _
- UPLOAD.SUBDIR$, _
- RESTRICT.BAUD, _
- USE.COLOR, _
- DISKFULL.GO.OFFLINE, _
- EXTENDED.LOGGING, _
- MODEM.RESET.COMMAND$, _
- MODEM.COUNT.RINGS.COMMAND$, _
- MODEM.ANSWER.COMMAND$, _
- MODEM.GO.OFFHOOK.COMMAND$, _
- DISK.FOR.DOS$, _
- DUMB.MODEM, _
- COMMENTS.AS.MESSAGES, _ ' CPC14-1C
- LSB, _
- MSB, _
- LINE.CONTROL.REGISTER, _
- MODEM.CONTROL.REGISTER, _
- LINE.STATUS.REGISTER, _
- MODEM.STATUS.REGISTER
- 19165 IF DNLD.SUB<1 OR DNLD.SUB>99 THEN _
- GOTO 19170
- FOR I = 1 TO DNLD.SUB
- WRITE #1,DNLD$(I)
- NEXT
- 19170 CLOSE #1
- '
- ' *****************************************************************************
- ' * NOTIFY THE SYSOP THAT THE CONFIGURATION DESCRIPTION FILE HAS BEEN WRITTEN *
- ' *****************************************************************************
- '
- 19175 CLS
- LOCATE 12,1,1
- PRINT "RBBS-PC configuration description file, " + CONFIG.FILENAME$ + ", now on default drive."
- GOSUB 60380
- 19179 GOTO 60340
- '
- ' *****************************************************************************
- ' * DISPLAY PARAMETERS FOR RUNNING MULITPLE COPIES OF RBBS-PC *
- ' *****************************************************************************
- '
- 21550 DISPLAYED.PAGE.NUMBER = 7
- 21560 GOSUB 30040
- 21565 MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD
- MAX.MSG.FILE.SIZE.FRM.DEF! = HIGHEST.MESSAGE.RECORD
- MAX.ALLOWED.MSGS.FRM.DEF = MAXIMUM.NUMBER.OF.MSGS
- 21570 GOSUB 24800
- 21580 LOCATE 3,9
- PRINT "121. Maximum number of concurrent RBBS-PC's -------"STR$(MAXIUM.NUMBER.OF.NODES)
- 21590 IF MAXIUM.NUMBER.OF.NODES = 1 THEN _
- MT$ = "single RBBS-PC copy " ELSE _
- MT$ = "concurrent RBBS-PC's" : _
- GOSUB 21900 : _
- IF NETWORK.TYPE < 0 OR NETWORK.TYPE > 4 THEN _
- GOTO 21810
- 21600 LOCATE 4,9
- PRINT "122. Environment running " + MT$ + " ------ " + NETWORK.TYPE$
- 21610 LOCATE 5,9
- PRINT "123. RBBS-PC 'recycle' method when users log off --- " + RECYCLE.TO.DOS$
- 21615 FILE$ = MAIN.MESSAGE.FILE$
- GOSUB 30180
- MAX.MSG.FILE.SIZE.FRM.DEF! = UG
- 21620 LOCATE 6,9
- PRINT "124. Number of records in the " + MAIN.USER.FILE$ + " file ";STRING$(16-LEN(MAIN.USER.FILE$),"-");STR$(MAX.USR.FILE.SIZE.FRM.DEF)
- 21630 LOCATE 7,9
- PRINT "125. Number of records in " + MAIN.MESSAGE.FILE$ + " file ";STRING$(20-LEN(MAIN.MESSAGE.FILE$),"-");STR$(MAX.MSG.FILE.SIZE.FRM.DEF!)
- 21635 LOCATE 8,9
- PRINT "126. Maximum number of messages allowed ------------"STR$(MAX.ALLOWED.MSGS.FRM.DEF)
- 21636 LOCATE 9,9
- PRINT "127. Conference File Maintenance.
- 21640 GOSUB 24890
- 21650 GOSUB 22160
- 21660 IF IX THEN _
- ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,16910,23000,21680
- 21670 GOTO 21650
- 21680 GOSUB 50340
- 21690 IF HJ$ = "121" THEN _
- GOTO 21750
- 21700 IF HJ$ = "122" THEN _
- GOTO 21810
- 21710 IF HJ$ = "123" THEN _
- GOTO 21950
- 21720 IF HJ$ = "125" THEN _
- GOSUB 22040 : _
- GOTO 21550
- 21730 IF HJ$ = "124" THEN _
- IF F = 2 THEN _
- GOSUB 22560 : _
- GOTO 21550 ELSE _
- GOSUB 22100 : _
- GOTO 21550
- 21735 IF HJ$ = "126" THEN _
- GOTO 13890
- 21736 IF HJ$ = "127" THEN _
- GOTO 25040
- 21740 GOTO 21640
- '
- ' *****************************************************************************
- ' * ALLOW THE USER TO SPECIFY THE MAXIMUM NUMBER OF RBBS-PC'S TO CONFIGURE FOR*
- ' *****************************************************************************
- '
- 21750 GOSUB 50340
- LOCATE 24,5
- PRINT "Maximum number of conurrent RBBS-PC's? (a value between 1 and 36)";
- 21760 LINE INPUT;HJ$
- 21770 B1 = VAL(HJ$)
- 21780 IF B1 < 1 OR B1 > 36 THEN _
- GOTO 21750
- 21790 IF MAXIUM.NUMBER.OF.NODES = B1 THEN _
- GOTO 21550
- 21795 B3! = MAX.MSG.FILE.SIZE.FRM.DEF!
- GOSUB 30610
- 21800 GOTO 21550
- '
- ' *****************************************************************************
- ' * IDENTIFY THE NETWORK TYPES THAT RBBS-PC CAN RUN IN *
- ' *****************************************************************************
- '
- 21810 CLS
- LOCATE 3,5
- PRINT "RBBS-PC is supported in the following:"
- LOCATE 5,20
- PRINT "Environment"
- LOCATE 7,10
- PRINT "0. Single RBBS-PC in an IBM DOS environment"
- LOCATE 9,10
- PRINT "1. MultiLink (multi-tasking under single DOS)
- 21840 LOCATE 11,10
- PRINT "2. Omninet (CORVUS)"
- LOCATE 13,10
- PRINT "3. PC-NET (Orchid)"
- LOCATE 15,10
- PRINT "4. DESQview (Quarterdeck)" ' CPC14-1C
- LOCATE 17,10 ' CPC14-1C
- PRINT "5. IBM DOS (3.1 or above) file sharing not supported" ' CPC14-1C
- 21870 GOSUB 50340
- LOCATE 24,5
- PRINT "Select environment (0 to 5, CR to end)"; ' CPC14-1C
- LINE INPUT;X$
- IF X$ = "" THEN _
- GOTO 21550
- NETWORK.TYPE = VAL(X$)
- GOSUB 21890
- GOTO 21550
- 21890 IF NETWORK.TYPE < 0 OR NETWORK.TYPE > 5 GOTO 21870 ' CPC14-1C
- 21895 IF NETWORK.TYPE = 0 THEN _
- NETWORK.TYPE$ = "IBM's DOS
- 21900 IF NETWORK.TYPE = 1 THEN _
- NETWORK.TYPE$ = "MultiLink
- 21910 IF NETWORK.TYPE = 2 THEN _
- NETWORK.TYPE$ = "Omninet
- 21920 IF NETWORK.TYPE = 3 THEN _
- NETWORK.TYPE$ = "PC-NET
- IF NETWORK.TYPE = 4 THEN _ ' CPC14-1C
- NETWORK.TYPE$ = "DESQview" ' CPC14-1C
- 21930 IF NETWORK.TYPE = 5 THEN _ ' CPC14-1C
- NETWORK.TYPE$ = "IBM's file sharing -- future" ' CPC14-1C
- 21940 RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SELECT HOW RBBS-PC IS TO RECYCLE WHEN A USER LOGS OFF *
- ' *****************************************************************************
- '
- 21950 GOSUB 50340
- LOCATE 24,5
- PRINT "How RBBS-PC recycles when users logs off (SYSTEM or INTERNAL)? ";
- 21960 LINE INPUT;HJ$
- 21970 IF LEN(HJ$) < 1 OR LEN(HJ$) > 8 THEN _
- GOTO 21950
- 21980 GOSUB 50654
- 21990 IF HJ$ = "SYSTEM" THEN _
- RECYCLE.TO.DOS = 1 : _
- GOTO 22020
- 22000 IF HJ$ = "INTERNAL" THEN _
- RECYCLE.TO.DOS = 0 : _
- GOTO 22020
- 22010 GOTO 21950
- 22020 RECYCLE.TO.DOS$ = HJ$
- 22030 GOTO 21550
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SPECIFY THE MAXIMUM NUMBER OF RECORDS IN MESSAGES FILE *
- ' *****************************************************************************
- '
- 22040 GOSUB 50340
- LOCATE 24,5
- PRINT "Max. records in preformatted " + MAIN.MESSAGE.FILE$ + " file (>" + STR$(5*MAX.ALLOWED.MSGS.FRM.DEF + 1 + MAXIUM.NUMBER.OF.NODES) + "):";
- 22050 LINE INPUT;HJ$
- 22060 B3! = VAL(HJ$)
- 22070 IF B3! <= (5*MAX.ALLOWED.MSGS.FRM.DEF + 1 + MAXIUM.NUMBER.OF.NODES) OR _
- B3! > 9999999! THEN _
- GOTO 22040
- 22080 B1 = MAXIUM.NUMBER.OF.NODES
- GOSUB 30610
- MAX.MSG.FILE.SIZE.FRM.DEF! = B3!
- 22090 RETURN
- '
- ' *****************************************************************************
- ' * BUILD THE USERS FILE TO SUIT *
- ' *****************************************************************************
- '
- 22100 GOSUB 50340
- LOCATE 24,5
- FF = CURRENT.USER.COUNT
- IF FF > 1 THEN _
- FF = FF-1
- 22105 GOSUB 50340
- LOCATE 24,5
- PRINT STR$(FF) + " of" + STR$(HIGHEST.USER.RECORD) + _
- " records used. Enter new maximum number of records for " + _
- MAIN.USER.FILE$ + ":";
- 22110 LINE INPUT;HJ$
- 22120 B1 = VAL(HJ$)
- 22130 IF B1 < 1 OR B1 > 99999! OR B1 < FF THEN _
- GOTO 22100
- 22140 B2 = 2
- WHILE B2 < B1
- B2 = B2 * 2
- WEND
- IF MAX.USR.FILE.SIZE.FRM.DEF = B2 THEN _
- RETURN
- 22142 XX$ = "Change " + MAIN.USER.FILE$ + " file to" + STR$(B2) + " records? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 22100,22150,22100,22100
- 22150 MAX.USR.FILE.SIZE.FRM.DEF = B2
- D.FLAG = -1
- GOSUB 24110
- IB = 1
- MAX.USR.FILE.SIZE.FRM.DEF = B2
- HIGHEST.USER.RECORD = B2
- GOSUB 30450
- GOSUB 50340
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO HANDLE THE FUNCTION KEYS AND SCROLL BETWEEN CONFIG'S *
- ' * PAGES OF OPTIONS. *
- ' *****************************************************************************
- '
- 22160 I! = FRE(C$)
- Y$ = INKEY$
- 22170 IX = 0
- 22180 IF LEN(Y$) < 1 THEN _
- GOTO 22160
- 22190 IF LEN(Y$) = 2 THEN _
- GOTO 22240
- 22200 IF ASC(Y$) = 13 THEN _
- IX = 13 : _
- RETURN
- 22205 IF ASC(Y$) = 8 AND LEN(HJ$) > 0 THEN _
- HJ$ = LEFT$(HJ$,LEN(HJ$)-1) : _
- PRINT CHR$(29) + " " + CHR$(29); : _
- GOTO 22160
- 22206 IF ASC(Y$) < 48 OR ASC(Y$) > 57 THEN _
- GOTO 22160
- 22210 PRINT Y$;
- 22220 HJ$ = HJ$ + Y$
- IF LEN(HJ$) > 4 THEN _
- IX = 13
- 22230 RETURN
- 22240 IX = ASC(RIGHT$(Y$,1))
- 22250 Y$ = "
- 22260 IF IX < 59 OR IX > 81 THEN _
- RETURN
- 22270 IX = IX-58
- 22280 IF IX < 10 THEN _
- RETURN
- 22290 IF IX = 15 THEN _
- IX = 11 : _
- RETURN
- 22300 IF IX = 21 THEN _
- IX = 10 : _
- RETURN
- 22310 IF IX = 23 THEN _
- IX = 12
- RETURN
- 22320 IX = 0
- 22330 RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO NOTIFY THE USER WHEN READING DATA *
- ' *****************************************************************************
- '
- 22340 LOCATE 22,15
- PRINT SPC(64);
- LOCATE 22,15
- PRINT TIME$;" ";
- COLOR 0,7
- PRINT " Reading Data, Wait a sec !!! ";
- COLOR FG,BG,BORDER
- RETURN
- '
- ' *****************************************************************************
- ' * BEFORE EXITING, ASK USER IF HE WANTS TO WRITE OUT THE CHANGES OR QUIT *
- ' *****************************************************************************
- '
- 22350 GOSUB 50340
- 22360 XX$ = "Are you satisfied with all changes ? (Y/N) or <Q)uit "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 12190,18740,60360,22350
- 22380 LINE INPUT;HJ$
- 22390 IF LEN(HJ$) < 1 OR LEN(HJ$) > 3 THEN _
- GOTO 22470
- 22400 GOSUB 50654
- 22410 IF HJ$ = "NO" THEN _
- AB = 1 : _
- RETURN
- 22420 IF HJ$ = "N" THEN _
- HJ$ = "NO" : _
- AB = 1 : _
- RETURN
- 22430 IF HJ$ = "YES" THEN _
- AB = 2 : _
- RETURN
- 22440 IF HJ$ = "Y" THEN _
- HJ$ = "YES" : _
- AB = 2 : _
- RETURN
- 22450 IF HJ$ = "QUIT" THEN _
- AB = 3 : _
- RETURN
- 22460 IF HJ$ = "Q" THEN _
- AB = 3 : _
- RETURN
- 22470 AB = 4
- RETURN
- '
- ' *****************************************************************************
- ' * ASK THE USER WHICH RBBS-PC.DEF FILE CONFIG IS TO WORK WITH *
- ' *****************************************************************************
- '
- 22480 GOSUB 50340
- LOCATE 24,5
- PRINT "To which copy of RBBS-PC will these options apply (1 to 36)?";
- 22490 LINE INPUT;HJ$
- 22500 IF LEN(HJ$) < 1 OR LEN(HJ$) > 2 THEN _
- GOTO 22480
- 22510 IF VAL(HJ$) < 1 OR VAL(HJ$) > 36 THEN _
- GOTO 22480
- 22520 MID$(CONFIG.FILENAME$,5,1) = MID$("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ",VAL(HJ$),1)
- 22530 RETURN
- '
- ' *****************************************************************************
- ' * NOTIFY SYSOP OPTIONS THAT ARE UNAVAILABLE FOR PUBLIC CONFERENCES *
- ' *****************************************************************************
- '
- 22560 GOSUB 50340
- LOCATE 24,5
- PRINT "Option " + HJ$ + " unavailable when maintaining a public conference!";
- 22570 DELAY! = FNTI! + 5
- GOSUB 60440
- RETURN
- '
- ' *****************************************************************************
- ' * DISPLAY THE RBBS-PC UTILITIES AVAILABLE IN CONFIG *
- ' *****************************************************************************
- '
- 23000 DISPLAYED.PAGE.NUMBER = 8
- 23010 GOSUB 24800
- RB = 0
- 23020 LOCATE 3,9
- PRINT "141. Pack " + MAIN.MESSAGE.FILE$ + " file.
- 23030 LOCATE 4,9
- PRINT "142. Rebuild " + MAIN.USER.FILE$ + " file.
- 23040 LOCATE 5,9
- PRINT "143. Print " + MAIN.MESSAGE.FILE$ + " 'header' records.
- 23050 LOCATE 6,9
- PRINT "144. Renumber messages in " + MAIN.MESSAGE.FILE$ + " file.
- 23055 LOCATE 7,9
- PRINT "145. Repair messages in " + MAIN.MESSAGE.FILE$ + " file.
- 23056 LOCATE 8,9
- PRINT "146. Initialize Hayes 2400 firmware for RBBS-PC.
- 23060 A$ = "Enter number of utility function, END to terminate, PgUp/PgDn to scroll."
- GOSUB 24900
- 23070 GOSUB 22160
- 23080 IF IX THEN _
- ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,21550,25220,23100
- 23090 GOTO 23070
- 23100 GOSUB 50340
- 23110 IF HJ$ = "141" THEN _
- GOTO 23160
- 23120 IF HJ$ = "142" THEN _
- IF F = 2 THEN _
- GOSUB 22560 : _
- GOTO 23000 _
- ELSE D.FLAG = 0 : _
- GOSUB 24110 : _
- GOTO 23000
- 23130 IF HJ$ = "143" THEN _
- SK = 0 : _
- GOTO 23630
- 23140 IF HJ$ = "144" THEN _
- GOTO 23740
- 23145 IF HJ$ = "145" THEN _
- RB = 1 : _
- SK = 0 : _
- GOTO 23630
- 23146 IF HJ$ = "146" THEN _
- GOSUB 23731 : _
- GOTO 23000
- 23150 GOTO 23060
- '
- ' *****************************************************************************
- ' * PACK THE MESSAGES FILE *
- ' *****************************************************************************
- '
- 23160 B1 = MAXIUM.NUMBER.OF.NODES
- B3! = HIGHEST.MESSAGE.RECORD
- PURGE = -1
- GOSUB 30610
- GOTO 23000
- 23610 I = LOC(1) + VAL(MID$(MESSAGE.RECORD$,117,4)) - 1 ' CPC14-1D
- 23620 RETURN
- '
- ' *****************************************************************************
- ' * PRINT THE HEADER RECORDS IN THE MESSAGES FILE *
- ' *****************************************************************************
- '
- 23630 GOSUB 30040 ' <----Print message headers
- 23640 OPEN "R",1,MAIN.MESSAGE.FILE$
- 23650 FIELD 1,128 AS MESSAGE.RECORD$
- 23670 FOR I = FIRST.MESSAGE.RECORD TO NEXT.MESSAGE.RECORD-1
- 23680 GET 1,I
- 23684 IF VAL(MID$(MESSAGE.RECORD$,117,4)) > 0 AND _ ' CPC14-1D
- SK < VAL(MID$(MESSAGE.RECORD$,2,4)) THEN _
- SK = VAL(MID$(MESSAGE.RECORD$,2,4)) : _
- GOSUB 23610 ELSE _ ' CPC14-1C
- GOTO 23725
- 23686 I$ = "K"
- IF MID$(MESSAGE.RECORD$,116,1) = CHR$(225) THEN _
- I$ = "A
- 23715 IF LOC(1) > NEXT.MESSAGE.RECORD-1 THEN _
- GOTO 23730
- 23717 PRINT LEFT$(MESSAGE.RECORD$,5) + " " + _
- MID$(MESSAGE.RECORD$,76,25) + " " + _
- MID$(MESSAGE.RECORD$,101,15) + " " + _
- I$ + " " + _
- MID$(MESSAGE.RECORD$,117,4) + " " + _ ' CPC14-1D
- STR$(LOC(1)) + " " + _
- STR$(I)
- SK = VAL(MID$(MESSAGE.RECORD$,2,4))
- 23720 IF RB AND VAL(MID$(MESSAGE.RECORD$,2,4)) = CALLS.TODATE! THEN _
- GOTO 23730
- 23722 IF RB THEN _
- GOSUB 50580
- 23725 NEXT
- 23730 GET 1,1
- MID$(MESSAGE.RECORD$,1,8) = SPACE$(8)
- MID$(MESSAGE.RECORD$,1,8) = STR$(SK)
- PUT 1,1
- CLOSE 1
- DELAY! = FNTI! + 5
- GOSUB 60440
- GOTO 23000
- '
- ' *****************************************************************************
- ' * ROUTINE TO INITIALIZE THE HAYES 2400 MODEM'S FIRMWARE *
- ' *****************************************************************************
- '
- 23731 LOCATE 25,5
- PRINT "Setting Hayes 2400 firmware switches for RBBS-PC on " + COM.PORT$;
- DELAY! = FNTI! + 3
- GOSUB 60440
- '
- ' *****************************************************************************
- ' * *
- ' * WHEN INITIALIZING THE HAYES 2400 VOLITILE MEMORY, SET THE FOLLOWING: *
- ' * *
- ' * &C1 = Indicate carrier detect if user is on-line *
- ' * &D3 = Use these settings when DTR drops *
- ' * B1 = Use Bell 212A when 1200 Baud is detected *
- ' * E0 = Do not echo modem commands back to the PC *
- ' * V1 = Issue long form of results codes *
- ' * M0 = Disable the speaker *
- ' * *
- ' *****************************************************************************
- '
- 23732 A$ = "AT&C1&D3B1E0V1M0" ' CPC14-1D
- IF VAL(MID$(MODEM.INIT.COMMAND$,24,3)) = 255 THEN _ ' CPC14-1D
- A$ = A$ + "Q1" ' Don't send results to the PC ' CPC14-1D
- A$ = A$ + _ ' CPC14-1D
- "S0 = " + MID$(STR$(VAL(MID$(MODEM.INIT.COMMAND$,24,3))),2,3)
- LOCATE 25,5
- PRINT SPACE$(74);
- LOCATE 25,5
- PRINT "Prevent remote digitial loop back tests? ";
- GOSUB 22380
- ON AB GOTO 23734,23733,23732,23732
- 23733 A$ = A$ + "&T5"
- 23734 OPEN COM.PORT$ + ":2400,N,8,1,RS,CD,DS" AS #3
- PRINT #3,"AT&F" 'Clear and initialize to factory settings ' CPC14-1D
- DELAY! = FNTI! + 3
- GOSUB 60440
- PRINT #3,A$ + "&W"
- GOSUB 60440
- 23735 A$="ATS0=0"
- LOCATE 25,5
- PRINT SPACE$(74);
- LOCATE 25,5
- PRINT "Force auto-answer off? (i.e. let RBBS-PC turn auto-answer on)";
- GOSUB 22380
- ON AB GOTO 23739,23736,23735,23735
- 23736 GOSUB 60440
- PRINT #3,A$+"&W"
- GOSUB 60440
- 23739 CLOSE #3
- LOCATE 25,5
- PRINT SPACE$(74);
- LOCATE 25,5
- PRINT "Hayes 2400 firmware switches are now set for RBBS-PC on "+M13$;
- IA!=FNTI!+3
- GOSUB 60440
- RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO RENUMBER THE MESSAGE FILE *
- ' *****************************************************************************
- '
- 23740 GOSUB 30040
- 23750 GOSUB 50340
- LOCATE 24,5
- PRINT "Renumber starting with OLD message # (<" + STR$(CALLS.TODATE! + 1) + ")";
- 23760 LINE INPUT;HJ$
- 23770 IF HJ$ = "" THEN _
- GOTO 23000
- 23780 B1 = VAL(HJ$)
- 23790 IF B1 < 1 OR B1 > CALLS.TODATE! THEN _
- GOTO 23750
- 23800 RE = B1
- 23810 GOSUB 50340
- LOCATE 24,5
- PRINT "Renumber starting with NEW message # ";
- 23820 LINE INPUT;HJ$
- 23830 IF HJ$ = "" THEN _
- GOTO 23000
- 23840 B1 = VAL(HJ$)
- 23850 IF B1 < 1 OR B1 > 9999 THEN _
- GOTO 23810
- 23860 NE = B1-1
- 23870 OPEN "R",1,MAIN.MESSAGE.FILE$
- 23880 FIELD 1,128 AS MESSAGE.RECORD$
- 23890 GOSUB 50340
- 23910 FOR I = FIRST.MESSAGE.RECORD TO NEXT.MESSAGE.RECORD-1
- 23920 GET 1,I
- 23930 IF INSTR(MESSAGE.RECORD$,CHR$(225)) OR _
- INSTR(MESSAGE.RECORD$,CHR$(226)) THEN _
- GOSUB 24010 : _
- GOSUB 23610
- 23940 NEXT
- 23942 GET 1,1
- 23944 MID$(MESSAGE.RECORD$,1,8) = SPACE$(8) ' Update the checkpoint record with the
- 23946 MID$(MESSAGE.RECORD$,1,8) = STR$(NE) ' 1- 8 = number of last message on system
- 23947 PUT 1,1
- 23950 CLOSE 1
- 23980 DELAY! = FNTI! + 1
- 23990 GOSUB 60440
- 24000 GOTO 23000
- 24010 LOCATE 24,15
- 24020 PRINT "Msg #" + MID$(MESSAGE.RECORD$,1,5);
- 24030 IF VAL(MID$(MESSAGE.RECORD$,2,4))<RE THEN _
- PRINT " read"; : _
- RETURN
- 24040 Y$ = MID$(MESSAGE.RECORD$,1,1)
- 24045 MID$(MESSAGE.RECORD$,1,5) = SPACE$(5)
- 24046 NE = NE + 1
- 24050 MID$(MESSAGE.RECORD$,1,5) = STR$(NE)
- 24060 MID$(MESSAGE.RECORD$,1,1) = Y$
- 24070 PRINT " renumbered as Msg #" + MID$(MESSAGE.RECORD$,1,5)
- 24090 PUT 1,I
- 24100 RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO PACK THE USERS FILE *
- ' *****************************************************************************
- '
- 24110 GOSUB 30040
- 24119 OPEN "R",1,MAIN.USER.FILE$,128
- 24120 FIELD 1, 31 AS USER.NAME$, _
- 15 AS PASSWORD$, _
- 2 AS SECURITY.LEVEL$, _
- 14 AS USER.OPTIONS$, _
- 24 AS CITY.STATE$, _
- 19 AS MACHINE.TYPE$, _
- 14 AS LAST.DATE.TIME.ON$, _
- 3 AS LIST.NEW.DATE$, _
- 2 AS USER.DOWNLOADS$, _
- 2 AS USER.UPLOADS$, _
- 2 AS ELASPED.TIME$
- 24130 GOSUB 50350
- A$ = F$
- GOSUB 50095
- OPEN "R",2,A$,128
- 24140 FIELD 2, 31 AS USER.NAME.N$, _
- 15 AS PASSWORD.N$, _
- 2 AS SECURITY.LEVEL.N$, _
- 14 AS USER.OPTIONS.N$, _
- 24 AS CITY.STATE.N$, _
- 19 AS MACHINE.TYPE.N$, _
- 14 AS LAST.DATE.TIME.ON.N$, _
- 3 AS LIST.NEW.DATE.N$, _
- 2 AS USER.DOWN.LOADS.N$, _
- 2 AS USER.UPLOADS.N$, _
- 2 AS ELAPSED.TIME.N$
- 24150 CURRENT.MONTH = VAL(LEFT$(DATE$,2))
- 24180 GOSUB 50340
- A! = 0
- GOSUB 50840
- 24190 A! = HIGHEST.USER.RECORD
- CURRENT.USER.COUNT = 1
- 24200 FOR J = 1 TO A!
- 24210 GET 1
- 24220 IF ASC(USER.NAME$) = 0 OR _
- MID$(USER.NAME$,1,7) = "NEWUSER" OR _
- MID$(USER.NAME$,1,7) = " " OR _
- MID$(USER.NAME$,1,12) = "deleted user" THEN _
- A$ = "" : _
- GOTO 24430
- 24225 IF D.FLAG THEN _
- GOTO 24290
- 24230 SECURITY.LEVEL = CVI(SECURITY.LEVEL$)
- 24240 IF SECURITY.LEVEL => SEC.LVL.EXEMPT.FRM.PURGING THEN _
- GOTO 24290 ' copy users exempt from purges
- 24250 IF SECURITY.LEVEL <= MINIMUM.LOGON.SECURITY THEN _
- GOTO 24290 ' copy "locked-out" users
- 24260 MONTH.OF.LAST.LOGON = VAL(LEFT$(LAST.DATE.TIME.ON$,2))
- 24270 MONTHS.SINCE.LAST.LOGON = CURRENT.MONTH-MONTH.OF.LAST.LOGON
- 24280 IF MONTHS.SINCE.LAST.LOGON < 0 THEN _
- MONTHS.SINCE.LAST.LOGON = MONTHS.SINCE.LAST.LOGON + 12
- 24285 IF MONTHS.SINCE.LAST.LOGON > ACT.MNTHS.B4.DELETING THEN _
- A$ = "(Last on " + LAST.DATE.TIME.ON$ + ")" : _ ' CPC14-1C
- GOTO 24430 'Purge inactive users
- 24290 PRINT STR$(LOC(1)) + ": " + USER.NAME$ + " copied .... ";
- 24300 GOSUB 50720
- GOTO 24450
- 24430 PRINT STR$(LOC(1)) + ": " + USER.NAME$ + " purged... " + A$
- 24450 NEXT
- 24650 CLOSE 1,2
- 24660 MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD
- 24670 GOSUB 30450
- 24730 XX$ = "Delete the old " + MAIN.USER.FILE$ + " file? (YES or NO)?"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 24750,24770,24730,24730
- 24750 A$ = MAIN.USER.FILE$
- GOSUB 50096
- NAME MAIN.USER.FILE$ AS A$
- 24760 GOTO 24780
- 24770 KILL MAIN.USER.FILE$
- 24780 GOSUB 50350
- A$ = F$
- GOSUB 50095
- NAME A$ AS MAIN.USER.FILE$
- 24790 RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO DISPLAY THE PAGE HEADER FOR CONFIG'S DISPLAYS *
- ' *****************************************************************************
- '
- 24800 CLS
- 24810 I! = FRE(C$)
- 24820 COLOR 0,7,0
- 24830 LOCATE 1,10
- 24840 PRINT "RBBS-PC CPC14.1 Default Configuration " + CONFIG.VERSION$;
- IF F THEN _
- GOSUB 24970
- 24850 COLOR FG,BG,BORDER
- 24860 LOCATE 1,68
- 24870 PRINT "Page " + STR$(DISPLAYED.PAGE.NUMBER) + " of " + STR$(MAXIMUM.DISPLAYABLE.PAGES)
- 24880 RETURN
- 24890 A$ = "Enter parameter number to change, END to update, PgUp/PgDn to scroll.
- 24900 LOCATE 24,1
- 24910 PRINT A$;
- 24920 PRINT STRING$((79-LEN(A$)),32);
- 24930 LOCATE 24,LEN(A$) + 1
- 24940 COLOR FG,BG,BORDER
- HJ$ = "
- 24950 I! = FRE(C$)
- 24960 RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO DISPLAY CONFERENCE MAINTENANCE MODE IN CONFIG'S DISPLAYS *
- ' *****************************************************************************
- '
- 24970 LOCATE 2,1
- PRINT SPACE$(10)
- LOCATE 2,10
- A$ = "Private"
- IF F = 2 THEN _
- A$ = "Public"
- 24980 COLOR 31,0,0
- PRINT "(" + A$ + " Conference Maintenance Mode for " + _
- MID$(MAIN.MESSAGE.FILE$,1,INSTR(MAIN.MESSAGE.FILE$,"M.DEF")-1) + _
- ")"
- COLOR FG,BG,BORDER
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO DISPLAY ACTIVITY WHEN PACKING/PURGING FILES *
- ' *****************************************************************************
- '
- 25020 LOCATE 24,5
- PRINT A$" record" + STR$(LOC(2)) + " of " + MAIN.USER.FILE$ + " file.";
- RETURN
- 25030 IF PURGE THEN _
- RETURN
- LOCATE 24,5
- PRINT A$ + " record" + STR$(LOC(2)) + " of " _
- + MAIN.MESSAGE.FILE$ + " file.";
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO ENTER/EXIT/CHANGE CONFERENCE MAINTENANCE MODE *
- ' *****************************************************************************
- '
- 25040 GOSUB 50340
- 25041 IF F = 0 THEN _
- GOTO 25050
- 25042 XX$ = "End conference maintenance? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25050,25044,25142,25142
- 25044 MAIN.MESSAGE.FILE$ = MAINMSG$
- 25045 MAIN.USER.FILE$ = MAINUSR$
- 25046 GOTO 12151
- 25050 LOCATE 24,5
- PRINT "Enter the name of the conference (seven characters or less) ";
- 25060 LINE INPUT;HJ$
- 25070 IF LEN(HJ$) < 1 OR LEN(HJ$) > 7 THEN _
- GOTO 25040
- 25075 GOSUB 50654
- CP$ = HJ$
- 25080 GOSUB 50340
- 25090 LOCATE 24,5
- PRINT "Specify drive (A->" + M$ + ") containing this conference's files. ";
- 25100 LINE INPUT;HJ$
- 25110 IF LEN(HJ$) <> 1 THEN _
- GOTO 25080
- 25112 GOSUB 50654
- 25114 IF HJ$ < "A" OR HJ$ > M$ THEN _
- GOTO 25090
- 25120 CP$ = HJ$ + ":" + CP$
- 25140 MAIN.MESSAGE.FILE$ = CP$ + "M.DEF
- 25141 GOSUB 50340
- 25142 XX$ = "Is this a private conference? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25144,25160,25141,25141
- 25144 F = 2
- GOTO 12160
- 25160 F = 1
- UG = 0
- MAIN.USER.FILE$ = CP$ + "U.DEF"
- GOTO 12160
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO DISPLAY SUBSYSTEM COMMANDS AND THEIR SECURITY LEVELS *
- ' *****************************************************************************
- '
- 25180 CLS
- I! = FRE(C$)
- COLOR 0,7,0
- LOCATE 1,23
- PRINT "RBBS-PC CPC14.1 Default Configuration";
- COLOR FG,BG,BORDER
- 25190 LOCATE 2,5
- PRINT "The RBBS-PC " + CO$ + " Commands are as follows:
- 25200 LOCATE 3,8
- PRINT "Command Security Level"
- RETURN
- 25210 LOCATE 24,5
- PRINT "Enter first character of command (CR to end)";
- LINE INPUT;X$
- IF X$ = "" THEN _
- RETURN 16910
- RETURN
- '
- ' *****************************************************************************
- ' * DISPLAY DOS SUB-DIRECTORY SUPPORT PARAMETERS WITHIN RBBS-PC *
- ' *****************************************************************************
- '
- 25220 DISPLAYED.PAGE.NUMBER = 9
- 25230 GOSUB 24800
- 25240 LOCATE 3,10
- PRINT "161. Will you be using DOS sub-directories? ------ " + WILL.SUBDIRS.B.USED$
- 25250 LOCATE 4,10
- PRINT "162. Upload to a DOS sub-directory? -------------- " + UPLOAD.TO.SUBDIR$
- 25260 LOCATE 5,10
- PRINT "163. Are downloads from DOS sub-directories? ----- " + DOWNLOAD.TO.SUBDIR$
- 25262 IF WILL.SUBDIRS.B.USED$ <> "YES" THEN _
- GOTO 25280
- 25264 LOCATE 6,10
- PRINT "164. List, change, add, delete sub-directories."
- 25280 GOSUB 24890
- 25290 GOSUB 22160
- 25300 IF IX THEN _
- ON IX GOTO 12360,14200,14570,15340,25220,16910,21550,23000,25220,22350,23000,12190,25320
- 25310 GOTO 25290
- 25320 GOSUB 50340
- 25330 IF HJ$ = "161" THEN _
- GOTO 25380
- 25335 IF WILL.SUBDIRS.B.USED$ = "NO" THEN _
- GOTO 25400
- 25340 IF HJ$ = "162" THEN _
- GOTO 25420
- 25350 IF HJ$ = "163" THEN _
- GOTO 25460
- 25360 IF HJ$ = "164" THEN _
- GOTO 25495
- 25370 GOTO 25280
- '
- ' *****************************************************************************
- ' * ESTABLISH IF THE SYSOP WANTS TO USE DOS SUB-DIRECTORIES *
- ' *****************************************************************************
- '
- 25380 XX$ = "Will you be using DOS sub-directories? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25400,25410,25380,25380
- 25400 WILL.SUBDIRS.B.USED$ = "NO"
- UPLOAD.TO.SUBDIR$ = WILL.SUBDIRS.B.USED$
- DOWNLOAD.TO.SUBDIR$ = WILL.SUBDIRS.B.USED$
- GOTO 25220
- 25410 WILL.SUBDIRS.B.USED$ = "YES"
- GOTO 25220
- '
- ' *****************************************************************************
- ' * SET UP FOR UPLOADING TO A DOS SUB-DIRECTORY? *
- ' *****************************************************************************
- '
- 25420 XX$ = "Are uploads to a DOS sub-directory? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25440,25450,25420,25420
- 25440 UPLOAD.TO.SUBDIR$ = "NO"
- GOTO 25220
- 25450 UPLOAD.TO.SUBDIR$ = "YES"
- GOTO 25220
- '
- ' *****************************************************************************
- ' * SHOULD RBBS-PC SET UP TO HAVE DOWNLOADS COME FROM DOS SUB-DIRECTORIES *
- ' *****************************************************************************
- '
- 25460 XX$ = "Are downloads from DOS sub-directories? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25480,25490,25460,25460
- 25480 DOWNLOAD.TO.SUBDIR$ = "NO"
- GOTO 25220
- 25490 DOWNLOAD.TO.SUBDIR$ = "YES"
- GOTO 25220
- '
- ' *****************************************************************************
- ' * HANDLE SUB-DIRECTORY INPUTS (LIST, CHANGE, ADD, DELETE) AND PUT IN .DEF *
- ' *****************************************************************************
- '
- 25495 IF UPLOAD.TO.SUBDIR$ = "NO" THEN _
- GOTO 25497
- GOSUB 31060
- A$ = "upload"
- PRINT "Change " + A$ +" DOS sub-directory? (YES or NO) ";
- 25496 GOSUB 22380
- ON AB GOTO 25497,25500,25495,25495
- 25497 IF DOWNLOAD.TO.SUBDIR$ = "NO" THEN _
- GOTO 25220
- GOSUB 31060
- A$ = "download"
- PRINT "List, change, add, delete " + A$ + _
- " DOS sub-directories? (YES or NO) ";
- 25498 GOSUB 22380
- ON AB GOTO 25220,25505,25497,25497
- 25500 IF UPLOAD.SUBDIR$ = "" THEN _
- GOTO 25502
- 25501 LOCATE 23,5
- PRINT SPC(74)
- LOCATE 23,5
- PRINT "Current " + A$" DOS sub-directory name is " + UPLOAD.SUBDIR$;
- 25502 GOSUB 25850
- IF LEN(HJ$) < 1 THEN _
- GOTO 25505
- 25503 IF DRIVE.FOR.UPLOADS$ = MID$(X$,1,1) THEN _
- SWAP UPLOAD.SUBDIR$,X$ : _
- IF X$ = "" THEN _
- GOTO 25501 _
- ELSE 25505
- 25504 GOTO 25502
- 25505 IF DOWNLOAD.TO.SUBDIR$ = "NO" THEN _
- GOTO 25220
- LOCATE 23,5
- PRINT SPC(74)
- LOCATE 23,5
- PRINT STR$(DNLD.SUB) + " of 99 download subdirectories designated.";
- 25510 GOSUB 31060
- PRINT "L>ist, C>hange, A>dd, D>elete " + A$" DOS sub-directories? (CR ends) ";
- 25520 LINE INPUT;HJ$:
- 25530 GOSUB 50654
- 25560 IF LEN(HJ$) < 1 GOTO 25220
- 25565 IF LEN(HJ$) <> 1 GOTO 25505
- 25570 FF = INSTR("LCAD",HJ$)
- 25580 IF FF = 0 THEN _
- GOTO 25510
- 25585 IF DNLD.SUB = 0 AND FF <> 3 THEN _
- GOTO 25510
- 25590 ON FF GOSUB 25610,25670,25730,25670
- 25600 GOTO 25505
- 25610 LAST = (DNLD.SUB/16) + 1
- INCR = 1
- FOR IX = 1 TO LAST
- GOSUB 24800
- LOCATE 4,1
- PRINT "DOS sub-directories from which downloads are done:";
- INDEX = 4
- FOR I = 1 TO 16
- LOCATE INDEX + I,1
- PRINT DNLD$(INCR);
- INCR = INCR + 1
- IF INCR > DNLD.SUB GOTO 25668
- 25634 NEXT
- 25636 XX$ = "More (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25668,25644,25636,25636
- 25644 NEXT
- 25668 GOTO 25505
- 25670 GOSUB 25850
- IF LEN(HJ$) < 1 THEN _
- GOTO 25505
- 25675 GOSUB 26030
- A$ = " not found!"
- IF X$ = "" THEN _
- GOTO 25682
- 25680 FOR I = 1 TO DNLD.SUB
- IF X$ = DNLD$(I) THEN _
- GOTO 25698
- NEXT
- 25682 GOSUB 31060
- PRINT X$ + A$;
- A$ = "download"
- DELAY! = FNTI! + 5
- GOSUB 60440
- GOTO 25505
- 25698 IF FF = 4 THEN _
- FOR X = I TO DNLD.SUB : _
- DNLD$(X) = DNLD$(X + 1) : _
- NEXT : _
- A$ = " deleted!" : _
- DNLD.SUB = DNLD.SUB-1 : _
- GOTO 25682
- 25700 IF FF = 2 THEN _
- A$ = "download" : _
- NEXT.MESSAGE.RECORD = I : _
- GOSUB 25850 : _
- GOSUB 26030 : _
- SWAP DNLD$(NEXT.MESSAGE.RECORD),X$ : _
- A$ = " changed!" : _
- GOTO 25682
- 25730 X$ = ""
- GOSUB 25850
- IF LEN(HJ$) < 1 THEN _
- GOTO 25505
- FOR I = 1 TO LEN(DRIVES.FOR.DOWNLOADS$)
- IF MID$(DRIVES.FOR.DOWNLOADS$,I,1) = LEFT$(X$,1) THEN _
- GOTO 25735
- NEXT
- GOSUB 60380
- GOSUB 31060
- PRINT X$ + " is not on a drive eligible for downloading.";
- DELAY! = FNTI! + 5
- GOSUB 60440
- GOTO 25730
- 25735 IF X$ = "" THEN _
- GOTO 25220
- DNLD.SUB = DNLD.SUB + 1
- DNLD$(DNLD.SUB) = X$
- GOTO 25505
- 25850 GOSUB 31060
- PRINT "Enter " + A$" DOS sub-directory name (CR to end). ";
- 25860 LINE INPUT;HJ$
- GOSUB 50654
- 25861 IF LEN(HJ$) < 1 THEN _
- RETURN
- 25862 IF LEN(HJ$) = 2 AND INSTR(HJ$,":") = 2 THEN _
- X$ = HJ$ : _
- RETURN
- 25863 IF INSTR(HJ$,":\") <> 2 THEN _
- GOTO 25850
- 25870 X$ = HJ$
- 25871 FOR I = 4 TO LEN(X$)
- 25872 Y = INSTR(I,X$,"\")
- 25873 IF Y = 0 THEN _
- L1 = LEN(X$)-I + 1 : _
- GOTO 25876
- 25874 IF Y<>0 THEN _
- L1 = Y-I + 1 : _
- GOTO 25876
- 25875 NEXT
- 25876 HJ$ = MID$(X$,I,L1)
- 25878 IF LEN(HJ$) > 12 THEN _
- GOTO 25850
- 25880 L1 = INSTR(HJ$,".")
- IF L1 = 0 THEN _
- IF LEN(HJ$) < 9 THEN _
- GOTO 25920 _
- ELSE GOTO 25850
- 25890 IF L1 > 9 THEN _
- GOTO 25850
- 25900 IF L1 < 2 THEN _
- GOTO 25850
- 25910 IF LEN(HJ$)-L1 > 3 THEN _
- GOTO 25850
- 25915 I = 0
- GOSUB 25920
- IF I = 0 THEN _
- RETURN
- GOTO 25850
- 25920 FOR J = 1 TO LEN(HJ$)
- 25930 X = ASC(MID$(HJ$,J,1))
- 25940 IF (X > 63 AND X < 91) THEN _
- GOTO 26020
- 25950 IF (X > 47 AND X < 58) THEN _
- GOTO 26020
- 25960 IF (X = 33) THEN _
- GOTO 26020
- 25970 IF (X > 34 AND X < 42) THEN _
- GOTO 26020
- 25980 IF (X > 43 AND X < 47) THEN _
- GOTO 26020
- 25990 IF (X > 96 AND X < 124) THEN _
- GOTO 26020
- 26000 IF (X = 125) THEN _
- GOTO 26020
- 26010 I = 1
- RETURN
- 26020 NEXT
- RETURN
- 26030 FOR I = 1 TO LEN(DRIVES.FOR.DOWNLOADS$)
- IF MID$(DRIVES.FOR.DOWNLOADS$,I,1) = MID$(X$,1,1) THEN _
- RETURN
- 26032 NEXT
- X$ = ""
- RETURN
- '
- ' *****************************************************************************
- ' * CHECK TO SEE IF A FILE EXIST (COMMON SUBROUTINE) *
- ' *****************************************************************************
- '
- 30000 OKAY = 0 ' <---- check to see if file exists
- 30010 NAME FILE$ AS FILE$ ' OKAY = 0 means file not found
- 30020 OKAY = -1 ' OKAY = 1 means file exists
- 30030 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO READ THE MESSAGES FILE'S CHECKPOINT RECORD *
- ' *****************************************************************************
- '
- 30040 OPEN "R",2,MAIN.MESSAGE.FILE$,128 ' <---- read MESSAGES checkpoint record
- 30050 FIELD 2,128 AS RR$
- 30060 GET 2,1
- 30090 CALLS.TODATE! = VAL(MID$(RR$,1,8)) ' 1- 8 = number of last message on system
- 30100 FIRST.USER.RECORD = VAL(MID$(RR$,52,5)) ' 52- 56 = first rec. of user file
- 30110 CURRENT.USER.COUNT = VAL(MID$(RR$,57,5)) ' 57- 61 = next avail. user record
- 30120 HIGHEST.USER.RECORD = VAL(MID$(RR$,62,5)) ' 62- 66 = last rec. of user file
- 30130 FIRST.MESSAGE.RECORD = VAL(MID$(RR$,68,7)) ' 68- 74 = first rec. of msgs file
- 30140 NEXT.MESSAGE.RECORD = VAL(MID$(RR$,75,7)) ' 75- 81 = next avail. msgs record
- 30150 HIGHEST.MESSAGE.RECORD = VAL(MID$(RR$,82,7)) ' 82- 88 = last rec. of msgs file
- 30152 MAXIMUM.NUMBER.OF.MSGS = VAL(MID$(RR$,89,7)) ' 89- 95 = maximum number of messages
- 30155 MAXIUM.NUMBER.OF.NODES = VAL(MID$(RR$,127,2)) '127-128 = maximum number of "nodes"
- 30160 CLOSE 2
- 30170 RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO GET THE LENGTH OF A FILE *
- ' *****************************************************************************
- '
- 30180 OPEN "R",2,FILE$,128 ' <---- get length of file
- 30190 FIELD 2,128 AS RR$
- 30200 UG = LOF(2)/128
- 30210 CLOSE 2
- 30220 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO CREATE A NEW MESSAGES FILE *
- ' *****************************************************************************
- '
- 30230 OPEN "R",2,MAIN.MESSAGE.FILE$ ' <---- create new MESSAGES file
- 30240 FIELD 2,128 AS RR$
- 30245 A$ = "Creating preformatted"
- 30270 LSET RR$ = " 1" + SPACE$(124) + STR$(MAXIUM.NUMBER.OF.NODES)
- 30280 PUT 2,1 ' write out blank checkpoint record
- 30290 FOR J = 2 TO FIRST.MESSAGE.RECORD-1
- 30300 GOSUB 31050
- 30310 PUT 2 ' write out "door" records of new file
- 30320 GOSUB 25030
- 30330 NEXT
- 30370 FOR J = FIRST.MESSAGE.RECORD TO HIGHEST.MESSAGE.RECORD
- 30380 LSET RR$ = SPACE$(128)
- 30390 PUT 2 ' write out messages records of new file
- 30400 GOSUB 25030
- 30410 NEXT
- 30420 HIGHEST.MESSAGE.RECORD = LOC(2) ' point to last available message record
- 30425 CLOSE 2
- 30430 GOSUB 30450
- 30440 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO UPDATE MESSAGES FILE'S CHECKPOINT RECORD *
- ' *****************************************************************************
- '
- 30450 CLOSE 2
- 30455 OPEN "R",2,MAIN.MESSAGE.FILE$ ' <---- update MESSAGES checkpoint record
- 30460 FIELD 2,128 AS RR$
- 30470 GET 2,1
- 30490 MID$(RR$,52,46) = SPACE$(46) 'reset all counters before filling
- 30500 MID$(RR$,52,5) = STR$(FIRST.USER.RECORD) ' 52- 56 = first rec. of msgs file
- 30510 MID$(RR$,57,5) = STR$(CURRENT.USER.COUNT) ' 57- 61 = next avail. user record
- 30520 MID$(RR$,62,5) = STR$(HIGHEST.USER.RECORD) ' 62- 66 = last rec. of user file
- 30540 MID$(RR$,68,7) = STR$(FIRST.MESSAGE.RECORD) ' 68- 74 = first rec. of msgs file
- 30550 MID$(RR$,75,7) = STR$(NEXT.MESSAGE.RECORD) ' 75- 81 = next avail. msgs record
- 30560 MID$(RR$,82,7) = STR$(HIGHEST.MESSAGE.RECORD) ' 82- 88 = last rec. of msgs file
- 30562 MID$(RR$,89,7) = STR$(MAXIMUM.NUMBER.OF.MSGS) ' 89- 95 = maximum number of messages
- 30565 HJ$ = STR$(MAXIUM.NUMBER.OF.NODES)
- IF MAXIUM.NUMBER.OF.NODES>9 THEN _
- HJ$=MID$(STR$(MAXIUM.NUMBER.OF.NODES),2,2)
- 30570 MID$(RR$,127,2) = HJ$ '127-128 = maximum number of "nodes"
- 30580 PUT 2,1
- 30590 CLOSE 2
- 30600 RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO EXPAND/CONTRACT A MESSAGES FILE *
- ' *****************************************************************************
- '
- 30610 CLOSE 1
- 30612 CLOSE 2
- 30613 OPEN "R",1,MAIN.MESSAGE.FILE$,128 ' <---- adjust size of the MESSAGES file
- 30614 FIELD 1,128 AS MESSAGE.RECORD$ ' Open old MESSAGES file
- 30615 A$ = MAIN.MESSAGE.FILE$
- GOSUB 50095
- 30616 OPEN "R",2,A$,128 ' Open new MESSAGES file
- 30620 FIELD 2,128 AS RR$
- 30635 A$="Copying"
- 30640 OE = B1
- IF MAXIUM.NUMBER.OF.NODES<=B1 THEN _
- OE = MAXIUM.NUMBER.OF.NODES
- 30650 GOSUB 50340
- 30660 FOR J=1 TO OE + 1
- 30670 GET 1,J
- 30680 LSET RR$ = MESSAGE.RECORD$ ' write out existing checkpoint and
- 30690 PUT 2 ' existing "door" records
- 30700 GOSUB 25030
- 30710 NEXT
- 30720 IF B1 <= MAXIUM.NUMBER.OF.NODES THEN _
- GOTO 30780
- 30730 FOR J = OE + 1 TO B1
- 30740 GOSUB 31050
- 30750 PUT 2 ' write out expansion "door" records
- 30760 GOSUB 25030
- 30770 NEXT
- 30780 MAXIUM.NUMBER.OF.NODES=B1 ' set value for maximum number of nodes
- 30820 FOR J = FIRST.MESSAGE.RECORD TO NEXT.MESSAGE.RECORD-1
- 30830 GET 1,J
- 30831 IF PURGE <> -1 THEN _
- GOTO 30840
- 30832 IF MID$(MESSAGE.RECORD$,116,1)=CHR$(225) THEN _
- PRINT "Msg #" + LEFT$(MESSAGE.RECORD$,5) + " copied..." : _
- GOTO 30840
- 30833 IF MID$(MESSAGE.RECORD$,116,1) = CHR$(226) THEN _
- PRINT "Msg #" + LEFT$(MESSAGE.RECORD$,5) + " purged..." : _
- J=LOC(1) + VAL(MID$(MESSAGE.RECORD$,117,4)) : _ ' CPC14-1D
- GOTO 30830
- 30840 LSET RR$ = MESSAGE.RECORD$
- 30850 PUT 2 ' write out existing message records
- 30860 GOSUB 25030
- 30870 NEXT
- 30875 B1=LOC(2) + 1 ' get new file's next message record
- 30880 CLOSE 1
- 30900 IF B3! < LOC(2) + 1 THEN _
- GOTO 30960
- 30905 IF PURGE THEN _
- NEXT.MESSAGE.RECORD = LOC(2) + 1 : _
- PURGE = 0 : _
- A$ = "Preformatting"
- 30910 FOR J! = NEXT.MESSAGE.RECORD TO B3!
- 30920 LSET RR$ = SPACE$(128)
- 30930 PUT 2 ' write out expansion message records
- 30940 GOSUB 25030
- 30950 NEXT
- 30960 FIRST.MESSAGE.RECORD = 1 + MAXIUM.NUMBER.OF.NODES + 1
- NEXT.MESSAGE.RECORD = B1
- HIGHEST.MESSAGE.RECORD = LOC(2)
- CLOSE 2
- 30980 XX$ = "Delete the old " + MAIN.MESSAGE.FILE$ + " file? (YES or NO)?"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 31000,31020,30980,30980
- 31000 A$ = MAIN.MESSAGE.FILE$
- GOSUB 50096
- NAME MAIN.MESSAGE.FILE$ AS A$
- 31010 GOTO 31030
- 31020 KILL MAIN.MESSAGE.FILE$
- 31030 A$ = MAIN.MESSAGE.FILE$
- GOSUB 50095
- NAME A$ AS MAIN.MESSAGE.FILE$
- 31035 GOSUB 30450
- 31040 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO CREATE A BLANK "NODE" RECORD IN THE MESSAGE FILE *
- ' *****************************************************************************
- '
- 31050 LSET RR$ = SPACE$(31) + "-1 0 0 0 0 0 0 0 0 0 0I"
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO POSITION CURSOR ON LINE 24, COLUMN 5 *
- ' *****************************************************************************
- '
- 31060 GOSUB 50340
- LOCATE 24,5
- RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO CREATE A NEW USERS FILE *
- ' *****************************************************************************
- '
- 50000 OPEN "R",2,MAIN.USER.FILE$ ' <---- create a new USERS file
- 50010 FIELD 2,128 AS U$
- 50015 GOSUB 50340
- 50016 A$ = "Creating preformatted"
- 50020 FOR J = FIRST.USER.RECORD TO HIGHEST.USER.RECORD
- 50030 LSET U$ = SPACE$(128)
- 50040 PUT 2
- 50050 GOSUB 25020
- 50060 NEXT
- 50080 CLOSE 2
- 50090 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO MAKE SURE A WORK FILE HAS ".BAK" AS AN EXTENSION *
- ' *****************************************************************************
- '
- 50095 IF INSTR(A$,".") THEN _
- A$ = MID$(A$,1,INSTR(A$,".")-1) + ".BAK" : _
- RETURN _
- ELSE A$ = A$ + ".BAK" : _
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO MAKE SURE SAVED FILES HAVES ".OLD" AS AN EXTENSION *
- ' *****************************************************************************
- '
- 50096 IF INSTR(A$,".") THEN _
- A$ = MID$(A$,1,INSTR(A$,".")-1) + ".OLD" : _
- RETURN _
- ELSE A$ = A$ + ".OLD" : _
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO CREATE A NEW MESSAGES FILE *
- ' *****************************************************************************
- '
- 50100 OPEN "R",2,MAIN.MESSAGE.FILE$
- 50110 FIELD 2,128 AS RR$
- 50114 IF F = 1 THEN _
- CALLS.TODATE! = 1
- 50115 GOSUB 50340
- 50120 LSET RR$ = " 1 " + SPACE$(118) + STR$(MAXIUM.NUMBER.OF.NODES)
- 50130 PUT 2,1 ' write out first record of new file
- 50140 FOR J! = 2 TO MAXIUM.NUMBER.OF.NODES + 1
- 50150 GOSUB 31050
- 50160 PUT 2 ' write out "door" records of new file
- 50170 GOSUB 25030
- 50180 NEXT
- 50190 FIRST.MESSAGE.RECORD = LOC(2) + 1 ' point to first message record
- 50200 NEXT.MESSAGE.RECORD = FIRST.MESSAGE.RECORD ' point to next available message record
- 50210 IF MAXIUM.NUMBER.OF.NODES + 1 = MAX.MSG.FILE.SIZE.FRM.DEF! THEN _
- GOTO 50270
- 50220 FOR J! = MAXIUM.NUMBER.OF.NODES + 2 TO MAX.MSG.FILE.SIZE.FRM.DEF!
- 50230 LSET RR$ = SPACE$(128)
- 50240 PUT 2 ' write out messages records of new file
- 50250 GOSUB 25030
- 50260 NEXT
- 50270 HIGHEST.MESSAGE.RECORD = LOC(2) ' point to last available message record
- 50280 GOSUB 30040
- 50290 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO KEEP STRING SPACE CLEAN AND CLEAR LINE 24 *
- ' *****************************************************************************
- '
- 50340 I! = FRE(C$)
- LOCATE 24,1
- PRINT STRING$(79,32);
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO DISPLAY A MESSAGE ON LINE 24 *
- ' *****************************************************************************
- '
- 50345 GOSUB 50340
- LOCATE 24,5
- PRINT XX$;
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO RETURN FROM CONFERENCE MODE TO MAIN MESSAGE FILE *
- ' *****************************************************************************
- '
- 50350 F$ = MAIN.USER.FILE$
- 50360 IF INSTR(MAIN.USER.FILE$,".") THEN _
- F$ = MID$(MAIN.USER.FILE$,1,INSTR(MAIN.USER.FILE$,".")-1)
- 50370 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO GET LENGTH OF THE USERS FILE *
- ' *****************************************************************************
- '
- 50480 MAX.USR.FILE.SIZE.FRM.DEF = 8
- 50490 NAME MAIN.USER.FILE$ AS MAIN.USER.FILE$
- 50500 OPEN "R",1,MAIN.USER.FILE$
- 50510 IF MAX.USR.FILE.SIZE.FRM.DEF < LOF(1)/128 THEN _
- MAX.USR.FILE.SIZE.FRM.DEF = LOF(1)/128
- 50520 UG = LOF(1)/128
- CLOSE 1
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO GET LENGTH OF THE MESSAGES FILE *
- ' *****************************************************************************
- '
- 50530 MAX.MSG.FILE.SIZE.FRM.DEF! = (5*MAX.ALLOWED.MSGS.FRM.DEF) + 1 + MAXIUM.NUMBER.OF.NODES
- 50540 NAME MAIN.MESSAGE.FILE$ AS MAIN.MESSAGE.FILE$
- 50550 OPEN "R",1,MAIN.MESSAGE.FILE$
- 50560 IF MAX.MSG.FILE.SIZE.FRM.DEF!<LOF(1)/128 THEN _
- MAX.MSG.FILE.SIZE.FRM.DEF! = LOF(1)/128
- 50570 CLOSE 1
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO REPAIR THE MESSAGE FILE AND GUARANTEE IT'S CHAINS *
- ' *****************************************************************************
- '
- 50580 OLD = LOC(1)
- GET 1,I + 1
- 50590 IF (MID$(MESSAGE.RECORD$,116,1) = CHR$(225) _
- OR MID$(MESSAGE.RECORD$,116,1) = CHR$(226)) _
- AND (MID$(MESSAGE.RECORD$,61,1) = ":" _
- AND MID$(MESSAGE.RECORD$,64,1) = ":" _
- AND MID$(MESSAGE.RECORD$,70,1) = "-" _
- AND MID$(MESSAGE.RECORD$,73,1) = "-") THEN _
- RETURN
- 50600 PRINT "Message chain broken at record number " + STR$(OLD)
- 50610 PRINT "Message chain repair in progress!
- 50620 FOR IQ = OLD + 1 TO NEXT.MESSAGE.RECORD-1
- 50630 GET 1,IQ
- 50640 IF (MID$(MESSAGE.RECORD$,116,1) = CHR$(225) _
- OR MID$(MESSAGE.RECORD$,116,1) = CHR$(226)) _
- AND (MID$(MESSAGE.RECORD$,61,1) = ":" _
- AND MID$(MESSAGE.RECORD$,64,1) = ":" _
- AND MID$(MESSAGE.RECORD$,70,1) = "-" _
- AND MID$(MESSAGE.RECORD$,73,1) = "-") THEN _
- GOTO 50660
- 50645 NEXT
- 50650 GOTO 23730
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO CONVERT FROM LOWER TO UPPER CASE *
- ' *****************************************************************************
- '
- 50654 ' Convert Lower Case to Upper Case -------
- 50655 FOR Z = 1 TO LEN(HJ$)
- MID$(HJ$,Z,1) = CHR$(ASC(MID$(HJ$,Z,1)) + 32*(ASC(MID$(HJ$,Z,1))>96))
- NEXT
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO SKIP TO THE NEXT GOOD MESSAGE HEADER IF CHAIN BORKEN *
- ' *****************************************************************************
- '
- 50660 GET 1,OLD
- 50670 MID$(MESSAGE.RECORD$,117,4) = STR$(IQ-OLD) ' CPC14-1D
- 50680 PUT 1,OLD
- 50690 PRINT "Message chain repaired.
- 50700 I = IQ
- 50710 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO HASH A USER'S NAME TO FIND THE CORRECT USER RECORD # *
- ' *****************************************************************************
- '
- 50720 JX = 30
- WHILE MID$(USER.NAME$,JX,1) = " "
- JX = JX-1
- WEND
- X$ = MID$(USER.NAME$,1,JX)
- 50721 UIX# = FNHSH(X$)
- Q = FNHSH2(X$)
- NSR = 1
- RO = CSRLIN
- CO = POS(0)
- 50722 GET 2,UIX#
- 50724 IF MID$(USER.NAME.N$,1,7) = " " THEN _
- GOTO 50730
- 50726 UIX# = UIX# + Q
- IF UIX# > MAX.USR.FILE.SIZE.FRM.DEF THEN _
- UIX# = UIX# - MAX.USR.FILE.SIZE.FRM.DEF
- 50728 NSR = NSR + 1
- LOCATE RO,CO
- PRINT "searching";UIX#;
- GOTO 50722
- 50730 LSET USER.NAME.N$ = USER.NAME$
- LSET PASSWORD.N$ = PASSWORD$
- LSET SECURITY.LEVEL.N$ = SECURITY.LEVEL$
- LSET USER.OPTIONS.N$ = USER.OPTIONS$
- LSET CITY.STATE.N$ = CITY.STATE$
- LSET MACHINE.TYPE.N$ = MACHINE.TYPE$
- LSET LAST.DATE.TIME.ON.N$ = LAST.DATE.TIME.ON$
- LSET LIST.NEW.DATE.N$ = LIST.NEW.DATE$
- LSET USER.DOWN.LOADS.N$ = USER.DOWNLOADS$
- LSET USER.UPLOADS.N$ = USER.UPLOADS$
- LSET ELAPSED.TIME.N$ = ELASPED.TIME$
- 50820 PUT 2,UIX#
- CURRENT.USER.COUNT = CURRENT.USER.COUNT + 1
- LOCATE RO,CO
- PRINT "to pos#";UIX#;" /";NSR;" srch(s)"
- 50830 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO WRITE OUT BLANK USER RECORDS TO THE USERS FILE *
- ' *****************************************************************************
- '
- 50840 FOR J = A! + 1 TO MAX.USR.FILE.SIZE.FRM.DEF
- 50850 LSET USER.NAME.N$ = SPACE$(31)
- LSET PASSWORD.N$ = SPACE$(15)
- LSET SECURITY.LEVEL.N$ = MKI$(-32000)
- LSET USER.OPTIONS.N$ = SPACE$(14)
- LSET CITY.STATE.N$ = SPACE$(24)
- LSET MACHINE.TYPE.N$ = SPACE$(19)
- 50910 LSET LAST.DATE.TIME.ON.N$ = SPACE$(14)
- LSET LIST.NEW.DATE.N$ = SPACE$(3)
- LSET USER.DOWN.LOADS.N$ = SPACE$(2)
- LSET USER.UPLOADS.N$ = SPACE$(2)
- LSET ELAPSED.TIME.N$ = SPACE$(2)
- 50970 PUT 2
- GOSUB 25020
- 50980 NEXT
- RETURN
- '
- ' *****************************************************************************
- ' * CONFIG.BAS'S ERROR ROUTINES *
- ' *****************************************************************************
- '
- 60000 REM
- 60010 REM * HANDLE ERROR CONDITIONS *
- 60020 ' PRINT ERR,ERL :STOP
- 60030 IF ERR = 53 AND ERL = 30010 THEN _
- RESUME 30030
- 60031 IF ERR = 58 AND ERL = 30010 THEN _
- RESUME 30020
- 60040 IF ERR = 62 AND _
- (ERL = 11600 OR _
- ERL = 11620 OR _
- ERL = 11640 OR _
- ERL = 11705 OR _
- ERL = 11706) THEN _
- PRINT CONFIG.FILENAME$ + _
- " from a version earlier than CPC14.1 on default drive." : _
- PRINT "Please delete and rerun CONFIG." : _
- RESUME 60340
- 60140 IF ERL = 31000 AND ERR = 58 THEN _
- KILL A$ : _
- RESUME 31000
- 60150 IF ERL = 31030 AND ERR = 58 THEN _
- KILL A$ : _
- RESUME 31030
- 60170 IF ERL = 22120 AND ERR = 6 THEN _
- RESUME 22100
- 60270 IF ERL = 24750 AND ERR = 58 THEN _
- KILL A$ : _
- RESUME 24750
- 60278 IF ERL = 50490 AND ERR = 58 THEN _
- RESUME 50500
- 60280 IF ERL = 50540 AND ERR = 58 THEN _
- RESUME 50550
- 60282 IF ERL = 50490 OR ERL = 50540 THEN _
- RESUME 15230
- 60285 IF ERR = 61 THEN _
- PRINT "ERROR - IBM DOS DISKETTE FULL " : _
- RESUME 60340
- 60290 IF ERR = 67 THEN _
- PRINT "ERROR - IBM DOS DIRECTORY FULL" : _
- RESUME 60340
- 60300 IF ERR = 70 THEN _
- PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED" : _
- RESUME 60340
- 60310 IF ERR = 71 THEN _
- PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE" : _
- RESUME 60340
- 60320 IF ERR = 72 THEN _
- PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE" : _
- RESUME 60340
- 60330 PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$
- 60340 IF F = 1 THEN _
- GOSUB 10540 : _
- DELAY! = FNTI! + 5
- 60350 GOSUB 60440
- 60360 SYSTEM
- 60370 PRINT "Unable to create preformatted " + MAIN.USER.FILE$ + " file."
- GOTO 60340
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO BEEP AT THE SYSOP *
- ' *****************************************************************************
- '
- 60380 FOR I = 1 TO 3
- SOUND 1000*I,1
- NEXT
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO WAIT A SPECIFIED NUMBER OF SECONDS *
- ' *****************************************************************************
- '
- 60440 ' wait routine
- 60450 IF FNTI! < DELAY! THEN _
- GOTO 60450
- 60460 RETURN
-